引入Mapbox Android Navigation v0.11.1后Gradle与appcompat冲突报错求助
解决Mapbox导航依赖导致的AppCompat Gradle构建错误
这大概率是依赖版本冲突搞的鬼——你用的Mapbox Android Navigation SDK 0.11.1是比较老旧的版本,它依赖的AppCompat库版本和你项目里默认的版本不匹配,直接触发了Gradle构建冲突。下面给你几个可行的解决办法:
1. 先定位具体的依赖冲突
先运行Gradle命令查看完整的依赖树,找出冲突的根源:
./gradlew app:dependencies
在输出里找com.android.support:appcompat-v7相关的条目,你会发现Mapbox依赖的AppCompat版本和你项目compileSdkVersion 26对应的版本不一致。
2. 强制统一AppCompat依赖版本
在你的app级build.gradle的android代码块里添加配置,强制所有依赖使用和你项目SDK版本匹配的AppCompat库:
apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultConfig { // 原有配置... applicationId "com.example.aadhilahmed.navtest4" minSdkVersion 18 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } // 新增这段配置 configurations.all { resolutionStrategy { force 'com.android.support:appcompat-v7:26.1.0' // 若还有其他support库冲突,也可以在这里强制统一版本 force 'com.android.support:support-v4:26.1.0' force 'com.android.support:design:26.1.0' } } // 原有buildTypes等配置... }
注意这里的版本26.1.0是和compileSdkVersion 26对应的稳定版本,不要乱改。
3. (推荐)升级Mapbox Navigation SDK版本
0.11.1实在太老了,不仅依赖冲突多,还可能存在已知的bug和安全问题。如果你的项目还在用support库,可以升级到最后几个支持support库的Mapbox Navigation版本(比如1.0.0左右);如果已经迁移到AndroidX,直接用最新的稳定版本就行。升级后依赖冲突的概率会低很多,还能拿到新功能。
完成配置后,点击Android Studio右上角的"Sync Project with Gradle Files"按钮同步,然后重新构建项目应该就能解决问题了。
内容的提问来源于stack exchange,提问作者Aadhil Ahmed
相关产品推荐
相关产品推荐

