我听说很多人都会收到这个错误:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lfoo.bar.MyActivity;
然而,我在StackOverflow上找到的解决方案都不适用于我。
我读到当你在项目中多次包含同一个库时可能会导致这个错误,但奇怪的是foo.bar.MyActivity只在一个库中定义,而且该库只包含在我的一次项目
请注意,foo.bar.MyActivity是在Android库中定义的,而不是在jar中定义的。
另一个奇怪的事情是,如果我关闭ProGuard,我可以正确地编译和运行应用程序:只有在Proguard完成预处理之后才出现错误(所以编译过程中的第二个错误)。
这里是proguard给出的错误的完整堆栈跟踪:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lfoo.bar.MyActivity;
Merged dex A (4111 defs/3053.8KiB) with dex B (47 defs/47.0KiB). Result is 4158 defs/3628.2KiB. Took 0.6s
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)
您对如何解决我的问题有任何想法吗?
PS:我使用Ant编译应用程序。
非常感谢你的时间。
其他信息: 我使用Netbeans和nbandroid构建应用程序
答案 0 :(得分:1)
试着希望它可以解决你的问题
我遇到了同样的问题,非常奇怪,因为它只在使用Eclipse时才会发生(但是对于Ant来说还可以)。这就是我修复它的方法:
右键单击“项目名称” 选择构建路径 - >配置构建路径 在Java Build Path中,转到Order and Export
选项卡取消选中您的.jar库
有时候:在Order and Export选项卡中我没有任何jar库,所以我取消选中了Android Private Libraries项。现在我的项目正在运行。