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

Flutter应用Play商店内部测试时Profile页面崩溃求助

解决Play商店版本Profile页面崩溃问题(R8混淆导致数据类丢失)

1. 创建/修改ProGuard规则文件

如果android/app/proguard-rules.pro文件不存在,直接在该路径新建;若已存在,打开编辑即可。

2. 添加保护序列化模型类的规则

根据你使用的JSON序列化方案,添加对应规则:

  • 若用Firebase Firestore/RTDB自动序列化(带@Serializable或Firebase注解的模型类):
# 替换为你存放司机信息等模型类的实际包路径
-keep class com.yourpackage.models.** { *; }

# 保留序列化相关注解和签名,避免R8移除关键信息
-keepattributes *Annotation*
-keepattributes Signature
  • 若用json_serializable库:
# 保护模型类及其内部类
-keep class com.yourpackage.models.** { *; }
-keep class com.yourpackage.models.*$* { *; }

# 保留序列化注解和字段映射
-keepattributes *Annotation*, Signature
-keepclassmembers class ** {
  @com.google.gson.annotations.SerializedName <fields>;
}

3. 确认Build配置启用ProGuard

打开android/app/build.gradle,检查release构建配置是否正确关联ProGuard规则(Flutter默认已启用,可确认):

android {
    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

4. 额外验证步骤

  • 确认已将Play控制台的应用签名证书指纹(不是上传密钥指纹,若开启了Google Play应用签名)添加到Firebase项目设置中,这是Firebase正常访问的必要条件。
  • 本地先构建release包测试:执行flutter build appbundle --release,将生成的包安装到手机验证,确认ProGuard规则生效后再提交到Play商店。

内容的提问来源于stack exchange,提问作者thabo motshweni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 05:02:31