更新Play Services至15.0.0并添加SafetyNet后出现重复类编译错误
解决Play Services 15.0.0版本依赖冲突问题
嘿,这个问题我之前帮不少开发者排查过——本质就是Google Play服务各组件版本不统一导致的重复类冲突。下面给你几个落地可行的解决办法:
1. 统一所有Play Services依赖的版本
Google官方要求所有Play Services组件(比如safetynet、analytics、location等)必须使用相同版本,不然很容易出现类重复的问题。你可以这么做:
- 在项目根目录的
build.gradle里定义统一的版本变量:ext { playServicesVersion = '15.0.0' } - 然后在app模块的
build.gradle里,所有Play Services相关的依赖都用这个变量引用:implementation "com.google.android.gms:play-services-safetynet:$playServicesVersion" // 比如如果还有其他组件,也统一版本 implementation "com.google.android.gms:play-services-analytics:$playServicesVersion"
2. 排查并排除重复的依赖
有些第三方SDK会偷偷引入旧版本的Play Services模块,导致冲突。你可以用Gradle命令找出元凶:
- 在终端运行依赖树命令:
./gradlew app:dependencies - 搜索
com.google.android.gms:play-services-measurement相关条目,看看有没有不同版本的引用。如果发现某个第三方库带了旧版本,就用exclude把它去掉,比如:implementation('你的第三方SDK依赖') { exclude group: 'com.google.android.gms', module: 'play-services-measurement' }
3. 清理缓存并重新构建
有时候Gradle的缓存会搞事情,先清理再构建试试:
- 执行Android Studio的
Build > Clean Project,然后Build > Rebuild Project - 或者终端运行:
./gradlew clean build
额外提示
你遇到的com.google.android.gms.internal.measurement.zzabo类属于play-services-measurement模块,大概率是某个依赖(比如Firebase、广告SDK等)引入了这个模块的不同版本,和你手动添加的safetynet依赖版本不一致导致重复。按照上面的步骤排查,基本能解决问题。
内容的提问来源于stack exchange,提问作者lynx
相关产品推荐
相关产品推荐

