升级Android Studio 3.1后项目崩溃,报zzbq类解析失败错误
老哥我之前也碰到过一模一样的问题!升级Android Studio 3.1后项目直接因为Firebase相关的类找不到崩溃,折腾了好一阵才搞定,给你几个靠谱的解决方案:
先把你的报错信息贴出来方便对照:
--------- beginning of crash
04-13 13:33:55.466 12720-12720/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: woopy.domain.com.woopy, PID: 12720
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/zzbq;
at com.google.firebase.provider.FirebaseInitProvider.attachI...
1. 统一Google Play Services和Firebase库版本
这是最常见的诱因——不同版本的GMS(Google Play Services)和Firebase库会导致类依赖冲突。打开你的app/build.gradle,把所有com.google.android.gms:play-services-*和com.google.firebase:firebase-*依赖的版本号改成完全一致的。比如:
// 示例:统一用兼容的稳定版本(请根据官方最新兼容表调整) implementation 'com.google.android.gms:play-services-auth:18.0.0' implementation 'com.google.firebase:firebase-firestore:23.0.3' implementation 'com.google.firebase:firebase-auth:21.0.1' // 划重点:所有相关库的版本号必须完全匹配!
2. 检查Google Services插件版本
打开项目根目录的build.gradle,确保google-services插件的版本和你的库版本兼容:
buildscript { dependencies { // 示例:使用适配的插件版本(推荐用官方最新稳定版) classpath 'com.google.gms:google-services:4.3.10' } }
3. 清理缓存并彻底重建项目
AS 3.1的缓存偶尔会抽风,按顺序执行以下操作:
- 点击顶部菜单
Build > Clean Project - 接着执行
Build > Rebuild Project - 如果还是不行,手动删除项目根目录下的
.gradle和.build文件夹,再重新构建
4. 确认Multidex配置正确
如果你的项目方法数超过65k,必须正确配置Multidex:
在app/build.gradle里开启Multidex:
android { defaultConfig { multiDexEnabled true } } dependencies { implementation 'com.android.support:multidex:1.0.3' }
然后让你的Application类继承MultiDexApplication,或者在attachBaseContext方法中添加:
@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
5. 替换旧的依赖关键字
AS 3.1开始推荐用implementation代替旧的compile,api代替provided。如果你的依赖里还混用旧关键字,全部换成新的,避免依赖传递不完整的问题。
我当时就是靠统一GMS和Firebase的版本号解决的,你按上面的步骤试一遍应该就能搞定!
内容的提问来源于stack exchange,提问作者Frank Eno

