Gradle依赖冲突:play-services-measurement-api版本不一致问题问询
解决Google Play Services Measurement API依赖冲突问题
这个问题是由于你的项目中多个依赖库请求了com.google.android.gms:play-services-measurement-api的不同版本(16.0.4和16.3.0),虽然Gradle尝试将版本统一为16.3.0,但触发了依赖解析监听的报错。下面是具体的解决步骤:
1. 强制统一冲突库的版本
在你的项目根目录build.gradle的resolutionStrategy中添加对冲突库的强制版本声明,确保所有依赖都使用同一个版本:
configurations.all { resolutionStrategy { force "com.google.android.gms:play-services-basement:16.2.0" force "com.google.android.gms:play-services-tasks:16.2.0" // 强制统一measurement-api的版本为16.3.0 force "com.google.android.gms:play-services-measurement-api:16.3.0" // 同时同步关联的measurement-base版本,避免连锁冲突 force "com.google.android.gms:play-services-measurement-base:16.3.0" } }
2. 定位冲突来源(可选但推荐)
按照错误提示的建议,运行以下命令查看完整的依赖树,找出哪些第三方库引入了旧版本的play-services-measurement-api:
./gradlew :app:dependencies
在输出结果中搜索com.google.android.gms:play-services-measurement-api,就能看到具体是哪些依赖传递引入了16.0.4版本。如果这些库有更新的稳定版本,建议直接升级它们的版本,从根源上避免冲突。
3. 清理缓存并重新构建
修改配置后,清理项目缓存并重新构建,确保新的依赖规则生效:
./gradlew clean ./gradlew assembleDebug
额外注意事项
- 你的
dependencies中存在重复依赖(比如com.github.satyan:sugar出现了多次),建议清理掉重复项,减少潜在问题。 - 避免使用
+作为版本号(比如com.firebaseui:firebase-ui-auth:+),这种写法会自动拉取最新版本,容易引发不可控的版本冲突,建议使用具体的稳定版本(你后面已经声明了4.1.0,可以删除前面带+的那一行依赖)。 - 尽量保持Google Play Services和Firebase系列库的版本统一,比如你的
firebase-core同时出现了16.0.6和16.0.7版本,建议统一为同一个版本。
内容的提问来源于stack exchange,提问作者Midhilaj
相关产品推荐
相关产品推荐

