You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI Android应用Release模式崩溃求修复方案

修复Release模式下EncryptedSharedPreferences的AES256_SIV字段缺失问题

以下是针对该问题的具体修复建议:

  • 精准调整ProGuard规则
    原规则可能未覆盖到EncryptedSharedPreferences的内部枚举类,修改proguard.cfg为更精准的规则,确保PrefKeyEncryptionScheme的静态字段不被移除:

    -keep class android.support.v4.widget.Space { *; }
    -dontwarn android.support.v4.widget.Space
    # 保留加密偏好设置的密钥加密方案类及所有静态字段
    -keep class androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme {
        public static final ** *;
    }
    -keepclassmembers class androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme {
        public <fields>;
        public <methods>;
    }
    
  • 验证依赖版本一致性
    确保项目中androidx.security:security-crypto依赖在Debug和Release模式下版本完全一致,避免编译与运行时版本不匹配导致的字段缺失。以MAUI项目为例,在csproj中明确指定版本:

    <ItemGroup>
        <PackageReference Include="Xamarin.AndroidX.Security.Crypto" Version="1.1.0.6" />
    </ItemGroup>
    

    版本号请根据实际使用情况调整

  • 临时关闭R8全模式优化排查
    若ProGuard规则调整后仍无效,可在项目的gradle.properties中添加以下配置,关闭R8的激进全模式优化,验证是否为优化过度导致:

    android.enableR8.fullMode=false
    
  • 清理缓存后重新构建
    执行Clean Project和Rebuild Project操作,确保新的配置生效,避免旧构建缓存干扰。

内容的提问来源于stack exchange,提问作者Judson Abraham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:19:56