升级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




