启动新Android应用时遇依赖版本冲突错误,如何解决?
com.android.support:support-annotations依赖冲突问题 这个问题我之前帮不少开发者解决过,核心就是你的主应用用的com.android.support:support-annotations版本是26.1.0,但测试依赖拉取的版本是27.1.1,版本不一致触发了Gradle的依赖冲突检测。给你几个靠谱的解决办法,选一个适合你的就行:
方法一:强制统一所有依赖的版本
直接让Gradle强制所有模块使用同一个版本的support-annotations,这样不管主应用还是测试依赖,都会用你指定的版本。在app模块的build.gradle文件里添加以下配置:
android { // 你的其他Android配置(compileSdkVersion、defaultConfig等) } // 强制统一support-annotations版本 configurations.all { resolutionStrategy.force 'com.android.support:support-annotations:26.1.0' // 如果你想升级到测试依赖的版本,就改成27.1.1,建议尽量保持所有support库版本一致 }
添加完后点击Android Studio右上角的“Sync Now”同步Gradle,再重新构建项目即可。
方法二:排除测试依赖中的support-annotations
找到测试依赖里引入27.1.1版本的那个库,把它的support-annotations依赖排除掉,这样测试模块就会复用主应用的26.1.0版本。比如你的测试依赖是com.android.support.test:runner或者com.android.support.test.espresso:espresso-core,修改成这样:
androidTestImplementation('com.android.support.test:runner:1.0.2') { exclude group: 'com.android.support', module: 'support-annotations' } androidTestImplementation('com.android.support.test.espresso:espresso-core:3.0.2') { exclude group: 'com.android.support', module: 'support-annotations' }
同样,同步Gradle后重新构建项目。
方法三:统一升级所有support库版本
这是最彻底的方案,把主应用里所有com.android.support开头的依赖版本都改成27.1.1,和测试依赖保持一致。比如原来的implementation 'com.android.support:appcompat-v7:26.1.0'改成:
implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:design:27.1.1' // 其他所有support相关依赖都改成27.1.1版本
Google官方建议所有support库必须使用相同的版本号,这样能避免很多潜在的依赖冲突问题,推荐优先用这个方法。
同步Gradle后重新构建,冲突问题应该就能解决了。
内容的提问来源于stack exchange,提问作者Yashwanth Reddy




