Android-Exception整理之Multiple dex files define

问题描述:

手动编译Android工程时出现异常如下:

1
2
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/xxx/xxx/xxx

这个问题出现的原因是类的重复定义,即包的重复引用,意思就是项目的引用的某个包,而被作为library的项目也引用了同一个包。

解决方案:

1.首先要先找到是哪个包的重复引用,如果项目庞大的话这是个费事的问题,最笨的方法就是挨个依赖library的libs文件夹内的jar文件查看,最好是也看看jar文件的结构,已防止是被别人改过名字的jar包,或者是被别人二次封装的jar包。好经过不懈努力找到是xxx.jar重复。

2.找到app或对应library下的gradle文件dependencies结构下。

找到

1
compile fileTree(dir: 'libs', include: ['*.jar'])

修改成

1
provided fileTree(dir: 'libs', include: ['*.jar'])

3.然后clean,重新编译。