我有和android库项目,它有一个子项目取决于另一个。目前,在构建时,这可以正常工作。 build.gradle
文件包含以下内容:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.11.+'
}
}
但是,如果我将其更改为classpath 'com.android.tools.build:gradle:0.12.2'
,则会出现此错误
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/mycompany/android/SomeClass;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
如果我将其更改回0.11.+
,那么它会再次构建。造成这种情况的原因是什么,以及如何在不进入新项目的情况下解决这个问题?
答案 0 :(得分:0)
检查子项目中的libs文件夹,找到与其所依赖项目相同的库,如果找到它,则从项目结构中删除它(可以将其保留在光盘上)。我对新的gradle插件有同样的错误,我发现这是造成它的。