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

升级Android Studio 3.1等环境后遇appcompat-v7版本不一致错误求助

解决Android Support库版本不一致的问题

嘿,这个问题我之前升级Gradle和AS的时候也踩过坑,别慌,咱们一步步来搞定它~

问题原因

本质上是你的项目里某个第三方依赖库间接引用了27.1.1版本的appcompat-v7,而你自己在build.gradle里指定的compile版本是27.0.2,导致编译时和运行时的依赖版本不统一,Gradle就抛出了这个提示。

两种快速修复方案

方案1:强制统一所有依赖的appcompat版本(最省心)

直接在项目根目录的build.gradle文件里,找到allprojects代码块,添加版本强制策略,把所有地方的appcompat-v7都统一到同一个版本(推荐用27.1.1,因为这是运行时已经在使用的版本,兼容性更好):

allprojects {
    repositories {
        // 你原本的仓库配置(google()、jcenter()之类的)
    }

    // 新增这段版本统一代码
    configurations.all {
        resolutionStrategy.force 'com.android.support:appcompat-v7:27.1.1'
    }
}

方案2:排查并排除冲突的依赖(更可控)

如果你想弄清楚到底是哪个第三方库引入了不同版本的appcompat,可以先执行依赖树分析命令:

  • Mac/Linux终端:./gradlew app:dependencies
  • Windows命令行:gradlew.bat app:dependencies

在输出的依赖树里找到引用了com.android.support:appcompat-v7:27.1.1的那个库,然后在你app模块的build.gradle里,给这个库添加排除依赖的配置,同时自己明确指定统一的版本:

比如假设是com.example:some-library:1.0.0引入了冲突版本,就这么写:

dependencies {
    // 排除该库自带的appcompat依赖
    implementation('com.example:some-library:1.0.0') {
        exclude group: 'com.android.support', module: 'appcompat-v7'
    }

    // 明确指定统一的版本
    implementation 'com.android.support:appcompat-v7:27.1.1'
}

小提示

如果你的项目里还有其他Support库(比如recyclerview、design等),最好也把它们的版本统一到27.1.1,避免后续出现类似的版本冲突问题哦~

内容的提问来源于stack exchange,提问作者BrightArk

火山引擎 最新活动