Android引包出现Duplicate class com.xxx.xxx found in modules错误

本文介绍了三种解决Android项目中依赖库版本冲突和重复类错误的方法:一是统一依赖库版本,二是排除aar包中的特定jar包,三是使用`compileOnly`依赖。针对不同情况,分别提供了详细的步骤和示例,包括如何排除aar包中的classes.jar文件以及如何处理编译时不打包的依赖。

方法一:改依赖库的版本

其实就是依赖的包版本不一样,产生了冲突,把所有依赖的库改成版本一致的就可以了

注意:如果有多个library的引用,并且各自引入了 so库文件,编译时发生了so重复引入的问题,可以去掉其中一个分支的so文件的编译。

方法二:exclude aar中的jar包

场景一

要移除的jar包不在aar包中的classes.jar中
直接把aar包里的Jar打包的时候给去掉,就像下面这这样。注意,要使用exclude module这种方式,直接使用exclude group方式没有效果。exclude group的方法适用于exclude JAR包中的文件。

    implementation(name: '×××××××aar包', ext: 'aar') {
        exclude module: 'gson'
    }

场景二

要移除的jar包在aar包中的classes.jar中
这个时候,使用exclude方法已经不能生效了。你可以使用下面的通用方法,jar包也是这么处理

解压aar文件到tmpDir目录下
unzip ×××.aar -d tmpDir
找到classes.jar包,用压缩工具打开,删除目标文件
将tmpDir重新打包成一个新的aar
jar cvf ×××NewLib.aar -C tmpDir/ .
**补充:**我在Ubuntu下直接使用压缩工具打开aar包,然后删除其中的重复的文件,这个方法也是可行的。

方法三:compileOnly,只编译不打包

这个方法只能解决编译打包的问题,但是项目也无法调用该依赖中的资源,如果调用,会报错。 

参考:

Android引包出现Duplicate class com.xxx.xxx found in modules错误_哎吆我呸的博客-CSDN博客

gradle 几种依赖命令及文件冲突或包冲突_lfz2738942的博客-CSDN博客_gradle 依赖命令

Android Studio 引入Jar包,Jar包冲突问题总结_code豆腐的博客-CSDN博客 

ntime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.af$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ag found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ag$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ah found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ah$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ai found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ai$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj$1$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.aj$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.ak$b found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$1 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$2 found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$a found in modules jetified-kssdk-ad-3.3.76.5-runtime (:kssdk-ad-3.3.76.5:) and jetified-kssdk-ad-3.3.76.5-runtime (kssdk-ad-3.3.76.5.aar) Duplicate class com.kwad.components.core.webview.jshandler.al$b found in modules jetified-kssdk-ad-3
06-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值