Android安卓中多个Dependencies依赖引用了相同的“包”Multiple dex files define错误解决方案

版权声明: https://blog.csdn.net/wq6ylg08/article/details/90106019

Multiple dex files define (重复引用)

原因:在自己的项目中引用了某个“包”,而被你作为library的项目也引用了同一个“包”,引起编译错误。“包”是指类库里面出现了相同类名,不仅局限于jar包。android进行dex时会对字节码文件进行优化合并, 如果两个class完全一致, 合并以后就是一个。 但是如果两个类的类名一致但内部确有细微差别, 那么就不能合并。
背景: NewbieGuide:v2.1.0 ,我在排除库的重复引用出错,漏掉()
在这里插入图片描述
最终解决:找到引用了不需要的类的依赖库添加以下配置
support-compat-25.1.0是由于引入 compile ‘com.jakewharton:butterknife:8.5.1’生成的,所以去掉这个类库里的v4包依赖,找到 compile ‘com.jakewharton:butterknife:8.5.1’修改为:
在这里插入图片描述
注意格式!

情况一:主 module 和 library module在library中同时引入相同的“包”

错误日志:
在这里插入图片描述

1.1 错误原因:重复引用

在这里插入图片描述
在这里插入图片描述

1.2 解决方式:只保留一个

将libs文件夹下的V4包删除。
备注:能用compile引入的,尽量用compile引入。

情况二: 主 module 中多个依赖引用了相同的“包”

错误日志:
在这里插入图片描述

2.1 错误原因: 引用了同名的类

打开External Libraries查看:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
确实出现了同名的类。

2.2 解决方式:找到引用了不需要的类的依赖库添加以下配置

support-compat-25.1.0是由于引入 compile ‘com.jakewharton:butterknife:8.5.1’生成的,所以去掉这个类库里的v4包依赖,找到 compile ‘com.jakewharton:butterknife:8.5.1’修改为:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wq6ylg08/article/details/90106019