解决Android-Studio中远程依赖包重复的问题

问题背景

我们在引用其他人封装的控件或者开源库的时候,经常会遇到依赖包重复的问题。因为很多人在封装的时候也引用了别人的库,这就难免会产生两个库都引用了相同模块的问题,这时候在build的时候就会失败。如下,我们引入了两个包含com.google.zxing的依赖:

implementation 'com.journeyapps:zxing-android-embedded:3.5.0'
implementation 'cn.yipianfengye.android:zxing-library:2.2'

报错信息

android developer中介绍如下:

官方说明

解决办法

这种情况下我们要把重复的引用排除。

如果要排除一个group,可以使用以下的引用方式:

implementation("cn.yipianfengye.android:zxing-library:2.2") {
    exclude group: 'com.google.zxing'
}

或者可以排除group中的指定module:

implementation("com.afollestad.material-dialogs:core:0.9.5.0") {
    exclude group: 'com.android.support', module: 'support-v13'
    exclude group: 'com.android.support', module: 'support-vector-drawable'
}

或者可以粗暴的设置把所有引用的这个group都排除:

configurations{
    all*.exclude group:'com.google.zxing'
}

另外在我们自己封装控件或者开源库的时候,一些常用的依赖建议用provided的方式依赖(android studio3.0中更改为compileOnly),这样只会在编译时有效,不会参与打包。减少使用者出现重复冲突的问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注