Gradle依赖冲突:play-services包与ads-identifier 15.0.1版本冲突求助
解决GMS依赖冲突:移除或统一
play-services-ads-identifier版本 我来帮你搞定这个困扰的依赖冲突问题!你遇到的情况是play-services-ads-identifier被location或analytics间接引入,且版本和你指定的15.0.0不一致,导致运行时异常。下面是两种可行的解决方案:
方案1:强制统一ads-identifier版本(推荐)
既然你所有GMS核心库都用的15.0.0版本,直接显式指定ads-identifier的版本为15.0.0,Gradle会自动统一依赖版本,避免冲突。在你的build.gradle(Module级别)的dependencies块中添加:
implementation 'com.google.android.gms:play-services-ads-identifier:15.0.0'
这种方法最稳妥,因为不会意外移除可能被依赖的功能,同时彻底解决版本不一致的问题。
方案2:排除自动引入的ads-identifier依赖
如果你确认你的项目完全不需要ads-identifier的功能,可以直接从依赖树中排除它。首先通过Gradle命令查看依赖来源:
./gradlew app:dependencies
(或者在Android Studio中通过View > Tool Windows > Gradle > [你的项目名] > Tasks > android > dependencies查看依赖树)
找到引入ads-identifier的父依赖(比如play-services-location或play-services-analytics),然后在对应的依赖声明中添加排除规则:
// 假设是location引入的,就在location依赖中排除 implementation('com.google.android.gms:play-services-location:15.0.0') { exclude group: 'com.google.android.gms', module: 'play-services-ads-identifier' } // 如果是analytics引入的,就在analytics依赖中排除 implementation('com.google.android.gms:play-services-analytics:15.0.0') { exclude group: 'com.google.android.gms', module: 'play-services-ads-identifier' }
验证是否生效
修改后同步Gradle,再运行依赖查看命令,确认ads-identifier的版本已经统一为15.0.0,或者已经从依赖树中消失,之后重新编译发布版本即可解决运行时异常。
内容的提问来源于stack exchange,提问作者Aviran
相关产品推荐
相关产品推荐

