AndroidStudio添加多依赖导致依赖重复的解决办法

当Maven项目中不同依赖包含相同jar包时,可能导致运行失败。本文介绍如何识别冲突源头并排除多余依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当使用maven导入依赖时,可能会出现不同的依赖包含了同一个jar,运行app的时候,就会报错

Error:Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.
java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException:
Unable to merge dex

解决的方法是在引入依赖的时候把相同的jar去除掉
比方说,我同时引入了bmob和retrofit2的依赖

compile ('cn.bmob.android:bmob-sdk:3.5.1')
compile ('com.squareup.retrofit2:retrofit:2.1.0')

因为bmob底层也是通过引入okhttp来实现的,所以我报的错是:

Error:Execution failed for task ‘:app:transformClassesWithJarMergingForDebug’.

在AS中,选择以project显示项目,找到最下面的External Libraries
找到bmob-sdk类库:我们发现依赖了okhttp的jar包.
001.png

找到retrofit2类库:
002.png

如图依次点开之后发现了一个pom.xml,这里面就是关于这个jar的一些配置文件,点开之后发现也依赖了okhttp.jar
003.png
没错,这个就是导致报错的原因。
复制里面groupId,到你的app的build.gradle里,找到retrofit2依赖,添加{exclude group: ‘com.squareup.okhttp3’}
把这个groudId的引用去除掉。

implementation('com.squareup.retrofit2:retrofit:2.3.0') {
        exclude group: 'com.squareup.okhttp3'
 }

如果你有多个重复依赖的话,就按照本文所给出的方法,一个一个去重即可!!!

implementation ('com.squareup.retrofit2:converter-gson:2.3.0'){
        exclude group:'com.google.code.gson'
        exclude group: 'com.squareup.okhttp3'
        //exclude module:'okhttp'
}

您的赞赏是我不断更新的动力,希望能帮到你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值