Gradle配置详解系列(七)--解决依赖冲突

551 阅读1分钟
引言

在项目开发过程中,无可避免的要引入其他第三方库,但是第三方库可能还会引用其他第三方库, 而刚好自己项目中也引入了同一个库的不同版本,这样在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开发技能。