Android疑难解决-Duplicate class xxx.xxx.xxx found in modules xxx.xxx.xxx

Duplicate class top.zibin.luban.BuildConfig found in modules jetified-Luban-1.1.8-runtime (top.zibin:Luban:1.1.8) and jetified-compress-v3.10.9-runtime (io.github.lucksiege:compress:v3.10.9)

这种情况,说明 top.zibin.luban.BuildConfig 在两个地方都存在
需要舍弃一个,而这个类/包都是第三方依赖携带来的
比如A库依赖了C库,B库也依赖C库,你同时依赖了AB库,这是就会依赖冲突

1.找到重复的依赖

如果一眼看过去知道AB库分别是什么,就可以跳过此步骤

投机取巧

(试试总没错)
用来确定目前哪个库占主位置
在任意一个类文件中键入

 top.zibin//此处根据不同的报错信息修改,如果你的报错信息为 Duplicate class  xxx.xxx.xxx重复了 那这里就输入xxx.xxx.xxx

此时会触发代码提示,并导入类,再通过Ctrl+鼠标点击这个类,跳转到对应的类中,切换目录视图为项目,点击右边的定位
在这里插入图片描述
就可以看到AB其中一个库

分析依赖树

确定了一个库后
在terminal 也就是命令行处输入

./gradlew app:dependencies

app对应目前导入依赖的app:build.gradle
等待一会后出现结果,使用Ctrl+F搜索冲突的 库名 或者 版本名(唯一的就行)
会在数个地方发现C库的存在,然后找到主依赖
如下图,然后就到下一步 解除依赖
在这里插入图片描述
图只做演示

2.使其中一个库解除依赖

在依赖的地方 后面加上

 implementation('com.github.Hitomis.transferee:Transferee:1.6.1'){
        exclude group: 'top.zibin'/*, module: 'xxx'*/
    }

group后面接的是冲突的依赖名,module后面接的是模块名(可选)

猜你喜欢

转载自blog.csdn.net/weixin_47311938/article/details/130161947
xxx