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
相关产品推荐
相关产品推荐

