新版Android Studio打开旧项目遇appcompat-v7依赖版本冲突,求解决方案
解决Android Support库版本冲突问题
嘿,这个问题我碰到过好多次,其实就是Support库版本不统一惹的祸!咱先理清楚来龙去脉:你的项目compileSdkVersion是19,对应的Support库版本应该是19.1.0,但某个依赖(大概率是第三方库)偷偷引入了26.1.0版本的appcompat-v7,Android要求所有com.android.support库必须用完全一致的版本,所以就炸锅了。
下面给你两个靠谱的解决方案,按需选择:
方案一:强制统一到19.1.0版本(适合不想升级项目SDK的情况)
先找出哪个依赖带了高版本的Support库
打开终端,在项目根目录执行命令:./gradlew app:dependencies查看输出的依赖树,找到标注了
com.android.support:appcompat-v7:26.1.0的依赖项。排除该依赖自带的高版本库
找到对应的依赖声明,给它加上排除规则。比如原来的依赖是:implementation 'com.example:some-third-lib:1.0.0'改成:
implementation ('com.example:some-third-lib:1.0.0') { exclude group: 'com.android.support', module: 'appcompat-v7' }确保自己的appcompat-v7版本明确指定为19.1.0
在dependencies块里确认有这条:implementation 'com.android.support:appcompat-v7:19.1.0'
方案二:升级项目SDK到26(推荐,更长远)
旧版本的Support库早就停止维护了,升级到更高的SDK版本不仅能解决冲突,还能用上更多修复和新特性:
修改
android块里的SDK配置:android { compileSdkVersion 26 buildToolsVersion '27.0.3' // 这个版本和26兼容,不用改 defaultConfig { minSdkVersion 15 // 保持你的最低兼容版本不变 targetSdkVersion 26 // 其他版本信息、applicationId啥的不动 } }统一所有Support库版本为26.1.0
把所有com.android.support开头的依赖版本都改成26.1.0,比如:implementation 'com.android.support:appcompat-v7:26.1.0' implementation 'com.android.support:design:26.1.0' // 如果有用到其他Support库也要同步改
额外小提示
如果你的Android Studio版本比较新,也可以考虑迁移到AndroidX——这是Google替代旧Support库的新库,从根源上避免版本冲突问题。不过迁移需要调整一些代码和配置,适合有一定经验的开发者尝试。
内容的提问来源于stack exchange,提问作者BOOnZ




