升级Gradle 4.0.1后出现play-services-measurement-base版本冲突求助
解决Gradle 4.0.1下com.google.android.gms:play-services-measurement-base版本冲突问题
遇到这种Google Play服务间接依赖的版本冲突问题很常见,我来给你几个靠谱的解决办法:
1. 强制统一依赖版本
这是最直接快速的解决方案,在你的app模块的build.gradle文件中,添加配置强制指定该依赖的版本为需求的15.0.4:
configurations.all { resolutionStrategy.force 'com.google.android.gms:play-services-measurement-base:15.0.4' }
这样Gradle在解析依赖时会忽略其他库的版本要求,统一使用你指定的版本,直接解决冲突。
2. 排查依赖树,从根源解决
运行命令查看完整的依赖树,找出到底是哪些库拉了15.0.2版本的play-services-measurement-base:
./gradlew :app:dependencies
找到这些依赖库后,尽量将它们升级到依赖15.0.4版本的最新版——毕竟Google Play服务的各组件版本最好保持一致,从根源避免版本冲突。
3. 彻底清理缓存,避免旧缓存干扰
你之前只删除了项目的build文件夹,还需要清理Gradle的全局缓存,确保所有旧的依赖缓存被清除:
- 先执行项目缓存清理:
./gradlew cleanBuildCache clean
- 手动删除Gradle全局缓存目录:
- macOS/Linux:
~/.gradle/caches - Windows:
C:\Users\<你的用户名>\.gradle\caches
这样重新构建时,Gradle会重新拉取所有依赖,不会再用旧的缓存信息。
- macOS/Linux:
关于lint-cache文件的说明
那个group-index.xml文件是lint工具自动生成的缓存文件,你手动修改或者删除它没用,因为构建时会重新生成。它里面的版本信息其实是反映了当前依赖树里的实际情况,所以核心还是解决依赖冲突,而不是纠结这个缓存文件。
另外提醒一句:Google Play服务的各个组件版本尽量保持统一,比如如果你的项目里用了play-services-analytics、play-services-auth等库,尽量让它们的版本一致,这样能大幅减少这类版本冲突问题。
内容的提问来源于stack exchange,提问作者Ilja
相关产品推荐
相关产品推荐

