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

新版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的情况)

  1. 先找出哪个依赖带了高版本的Support库
    打开终端,在项目根目录执行命令:

    ./gradlew app:dependencies
    

    查看输出的依赖树,找到标注了com.android.support:appcompat-v7:26.1.0的依赖项。

  2. 排除该依赖自带的高版本库
    找到对应的依赖声明,给它加上排除规则。比如原来的依赖是:

    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'
    }
    
  3. 确保自己的appcompat-v7版本明确指定为19.1.0
    dependencies块里确认有这条:

    implementation 'com.android.support:appcompat-v7:19.1.0'
    

方案二:升级项目SDK到26(推荐,更长远)

旧版本的Support库早就停止维护了,升级到更高的SDK版本不仅能解决冲突,还能用上更多修复和新特性:

  1. 修改android块里的SDK配置:

    android {
        compileSdkVersion 26
        buildToolsVersion '27.0.3' // 这个版本和26兼容,不用改
        defaultConfig {
            minSdkVersion 15 // 保持你的最低兼容版本不变
            targetSdkVersion 26
            // 其他版本信息、applicationId啥的不动
        }
    }
    
  2. 统一所有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

火山引擎 最新活动