Android定位项目启动崩溃:ClassNotFoundException(com.google.android.gms.common.internal.zzbo)
解决Android定位项目启动崩溃(NoClassDefFoundError: com.google.android.gms.common.internal.zzbo)的问题
嘿,我帮你排查到问题根源了——你的Google Play Services依赖版本不一致,这直接导致了启动时的类找不到错误。
问题分析
看你的build.gradle配置,你同时引入了三个15.0.1版本的Play Services组件(maps、location、places),还加了一个旧版本的全量依赖compile 'com.google.android.gms:play-services:11.0.4'。Google Play Services的所有组件必须保持完全相同的版本,否则会出现类冲突、缺失的情况,而你错误里提到的FirebaseInitProvider初始化失败,就是因为版本不匹配引发的连锁问题。
另外,全量的play-services依赖不推荐使用,它会打包所有Play Services组件,不仅增大APK体积,还极易和单独引入的组件版本冲突。
修复步骤
移除旧的全量依赖
删掉这一行:compile 'com.google.android.gms:play-services:11.0.4'统一所有Play Services依赖版本
确保所有play-services-xxx开头的依赖版本一致,修改后的dependencies部分如下:dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.google.android.gms:play-services-maps:15.0.1' implementation 'com.google.android.gms:play-services-location:15.0.1' implementation 'com.google.android.gms:play-services-places:15.0.1' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' }清理并重构项目
在Android Studio里依次执行Build -> Clean Project和Build -> Rebuild Project,清除旧的依赖缓存,确保新的依赖正确同步。
额外建议
- 后续尽量只引入你实际需要的Play Services组件,避免全量依赖;
- 如果之后要加Firebase相关功能,记得保证Firebase和Play Services的版本匹配,避免再次出现类似冲突。
内容的提问来源于stack exchange,提问作者Samuel Acheampong WELLY-WORKS
相关产品推荐
相关产品推荐

