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

当使用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'
}

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

Android Studio中解决依赖关系错误的方法如下: 1. 检查依赖关系:首先,你需要检查你的项目中的依赖关系。你可以在项目的build.gradle文件中找到这些依赖项。确保所有的依赖项都正确且没有重复。 2. 排除重复依赖项:如果你发现有重复依赖项,你可以使用exclude关键字来排除其中一个依赖项。例如,如果你的项目中同时引用了两个库A和B,而这两个库都依赖于库C,你可以在build.gradle文件中的相应依赖项中添加exclude关键字来排除其中一个库对库C的依赖。示例代码如下: ```groovy implementation('com.libraryA') { exclude group: 'com.libraryC' } ``` 3. 更新依赖项版本:有时候,依赖项的版本可能过低或过高,导致冲突或错误。你可以尝试更新依赖项的版本来解决问题。在build.gradle文件中,将相应依赖项的版本号更改为最新版本。示例代码如下: ```groovy implementation 'com.libraryA:1.0.0' // 旧版本 implementation 'com.libraryA:2.0.0' // 新版本 ``` 4. 清理和重新构建项目:如果上述方法都无效,你可以尝试清理和重新构建你的项目。在Android Studio中,选择菜单栏中的"Build",然后选择"Clean Project"和"Rebuild Project"选项。这将清除所有生成的文件并重新构建项目。 5. 使用依赖冲突解决工具:如果你的项目中存在复杂的依赖关系冲突,你可以使用一些依赖冲突解决工具来帮助你解决问题。例如,可以使用"gradle-dependency-analyze"插件来分析和解决依赖关系冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值