You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

启动新Android应用时遇依赖版本冲突错误,如何解决?

解决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

火山引擎 最新活动