【发布时间】:2014-03-20 11:03:43
【问题描述】:
当我编译我的项目时,我遇到了这种错误;
错误:Android Dex:[OdeAl] 无法执行 DX 错误:Android Dex: [OdeAl] com.android.dex.DexException: 多个 dex 文件定义 Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; 错误:Android Dex:com.android.dx.merge.DexMerger.readSortableTypes 处的 [OdeAl](DexMerger.java:594) 错误:Android Dex:com.android.dx.merge.DexMerger.getSortedTypes 处的 [OdeAl](DexMerger.java:552) 错误:Android Dex: [OdeAl] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) 错误:Android Dex: [OdeAl] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) 错误:Android Dex: [OdeAl] at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 错误:Android Dex: [OdeAl] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) 错误:Android Dex: [OdeAl] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) 错误:Android Dex: [OdeAl] at com.android.dx.command.dexer.Main.run(Main.java:230) 错误:Android Dex: [OdeAl] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 错误:Android Dex: [OdeAl] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 错误:Android Dex: [OdeAl] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 错误:Android Dex:java.lang.reflect.Method.invoke 中的 [OdeAl](Method.java:597) 错误:Android Dex: [OdeAl] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:161) 错误:Android Dex: [OdeAl] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:294) 错误:Android Dex: [OdeAl] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
我该如何解决这个错误?
【问题讨论】:
-
您可能有不同名称的重复 jar 文件,这些文件具有定义的错误中的函数名称。意思是如果有两个罐子,它们都包含相同的类/包
-
您的主项目中是否有任何库项目?
-
@InnocentKiller 是的,我附加了 support-v4 和 support-v7 应用兼容库
-
然后从你的主项目中删除android support v4.jar,并从你的外部库中添加jar文件,然后尝试。
标签: android compiler-errors android-support-library