引言
在项目开发过程中,无可避免的要引入其他第三方库,但是第三方库可能还会引用其他第三方库, 而刚好自己项目中也引入了同一个库的不同版本,这样在Gradle编译时就可能会遇到编译错误。
比如类似于这种错误:
build.gradle: Error: all com.android.support libraries must use the exact same version
specification(mixing versions can lead to runtime crashes)
下面我们总结一下如何解决这种类似的问题:
1. 查看全部配置下的依赖树找出有冲突的依赖:
```
gradlew -q dependencies app:dependencies
```
2. 强制所有module使用指定库版本
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}
3. 使用exclude group可以将冲突库不包含在编译
api('xx.xxx.xxxxx:xxxxx:2.2.5') {
exclude group: 'com.android.support'
}
更多Android技术分享可以关注我的Android技术圈子添码猩球, 也可以加入QQ群号:690347536,学习交流Android开发技能。