Android - 解决第三方重复 compile 的问题

怎么查看第三方库依赖了其他什么库呢?很简单,打开终端,在project根目录下执行下面的命令:

1
./gradlew :app:dependencies --configuration compile

执行后的样子就是酱紫了:

如上图所示,我们可以看到 support-appcompat-v7 包下面,是由以下几个子包构成的:support-annotations、support-v4、support-vector-drawable、animated-vector-drawable

然后 support-v4 包下面又有 support-compat、support-media-compat、support-core-utils、support-core-ui、support-fragment构成。

现在我们来看库重复依赖的是什么样子呢?

如箭头所指的,我们常用的黄油刀 ButterKnife 8.5.1 版本它就依赖了support 25.1.0,然而我们项目用的却依赖了最新的 25.3.0 版本的 support,这个时候该如何解决呢?

当然是选择排除掉 ButterKnife 的 supprot 而用我们自己依赖的最新 support 啊!

直接排除整个group:

1
2
3
compile ('com.jakewharton:butterknife:8.5.1') {
exclude group: 'com.android.support'
}

然后我们看解决后的样子:

排除group里面的一个module:

1
2
3
compile ('com.github.hotchemi:permissionsdispatcher:2.1.3') {
exclude group: 'com.android.support', module:'support-v4'
}

解决前:

解决后:

直接排除一个module :

1
2
3
compile ('com.orhanobut:hawk:2.0.1'){
exclude module: 'gson'
}

解决前:

解决后:

Android Gradle