Flutter安卓App打appbundle包上架后崩溃 debug模式运行正常
Flutter Android AppBundle上架Play商店后华为P20启动崩溃排查方案
- 优先排查混淆配置问题:debug模式默认关闭代码压缩,release打AAB时默认开启R8混淆。先检查
android/app/proguard-rules.pro文件是否补全了所有依赖插件、原生SDK的混淆规则,尤其是你引入的华为相关服务、第三方统计/支付类SDK的规则。可临时在android/app/build.gradle的release配置项中将minifyEnabled和shrinkResources都设置为false,打AAB本地测试如果不再崩溃,即可定位为混淆规则缺失,再逐一核对补充即可。 - 验证AAB架构适配完整性:Play商店会根据设备架构拆分下发APK,华为P20为arm64-v8a架构,需确认你打AAB时没有过滤该架构。检查
android/app/build.gradle中ndk.abiFilters配置,确保包含arm64-v8a、armeabi-v7a两类主流架构。你可以用官方bundletool工具本地将AAB拆分为对应arm64架构的APK,直接安装到华为P20上复现问题,不需要上传到Play商店就能拿到完整崩溃日志。 - 检查启动初始化逻辑的兼容性:如果你在Application类、Flutter main方法
runApp()之前的阶段初始化了依赖GMS的服务(如Firebase、Google登录等),部分华为P20的系统版本未预装GMS,会因找不到类触发崩溃。需在初始化GMS相关服务前增加GMS可用性校验,检测不通过就跳过相关初始化逻辑。 - 直接打Release APK本地复现问题:执行命令
flutter build apk --release --target-platform android-arm64打arm64架构的Release安装包,直接安装到华为P20测试,如果能复现崩溃,直接连接Android Studio抓取全量Logcat日志,可定位到具体的崩溃栈信息,比排查商店下发的版本效率高很多。 - 排查启动页相关插件兼容性:如果你使用了
flutter_native_splash之类的原生启动页插件,可临时移除启动页配置,打AAB测试是否还会崩溃,排除启动页插件的架构适配、混淆遗漏问题。
内容的提问来源于stack exchange,提问作者Terrence Skill
相关产品推荐
相关产品推荐

