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

Android App从Google Play安装后启动报java.lang.VerifyError崩溃求助

问题根因分析
  • 本地运行的是debug构建,未开启混淆、资源压缩和Dex拆分逻辑,而上传Google Play的release构建开启了minifyEnabled和shrinkResources,R8在代码收缩过程中错误移除了Firebase初始化必须的类,导致类校验失败抛出VerifyError
  • 依赖配置存在冗余:引入了Firebase BOM后额外声明了已废弃的firebase-core依赖,可能引发Firebase各组件版本不匹配
  • 缺少Firebase相关的混淆保留规则,默认的Proguard规则未覆盖Firebase平台信息组件的必要类
复现方法

本地直接打release签名包,安装到测试设备即可复现崩溃,无需上传到Google Play商店验证。

修复步骤
  • 第一步:移除冗余Firebase依赖
    打开module级build.gradle,删除implementation 'com.google.firebase:firebase-core'这行,firebase-core从17.0.0版本开始已合并到firebase-analytics组件中,重复引入会导致版本冲突。
  • 第二步:补充Firebase混淆规则
    在项目的proguard-rules.pro文件中添加以下规则,避免R8错误移除Firebase必要类:
# 保留Firebase平台信息相关类
-keep class com.google.firebase.platforminfo.** { *; }
-keep class com.google.firebase.components.** { *; }
# 保留Firebase通用类避免校验错误
-keep class com.google.firebase.** { *; }
-keepnames class com.google.firebase.** { *; }
  • 第三步:配置主Dex保留规则
    你已开启multiDex,为避免Firebase初始化类被拆分到非主Dex导致加载失败,在module级build.gradle的defaultConfig块中添加:
multiDexKeepProguard file('multidex-config.pro')

在项目根目录新建multidex-config.pro文件,写入以下内容:

-keep class com.google.firebase.** { *; }
-keep class com.google.firebase.provider.FirebaseInitProvider { *; }
  • 第四步:升级Android Gradle插件(可选)
    你当前使用的AGP 4.1.3版本存在部分已知的R8优化bug,可将项目级build.gradle中的classpath 'com.android.tools.build:gradle:4.1.3'升级到4.2.2或7.0.x稳定版,避免工具链导致的优化错误。
验证方法

修改完成后,本地打包release签名包安装到测试设备,确认应用可以正常启动无崩溃后,再重新上传到Google Play即可。

内容的提问来源于stack exchange,提问作者Stefano M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:21:02