【问题标题】:Android Dex: [ActivityName] Unable to execute DXAndroid Dex:[ActivityName] 无法执行 DX
【发布时间】: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


【解决方案1】:

问题是您有多个相同的 LibraryClass 导入。

实际上,错误是说你有:

多个dex文件定义Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImp

所以,您应该检查是否多次添加了相同的 jar 文件。 如果是,请从 libs 文件夹中删除其中任何一个并清理您的项目。

【讨论】:

  • 我遇到了这个问题,我添加了 libs 目录并添加了另一个 jar 文件来更新我的应用程序,所以从库列表中删除所有项目并再次添加它们,而不需要多次导入
【解决方案2】:

@Josef的回答,你可以知道什么是jar文件,它已经两次或多次导入android项目来自错误

错误的下一行:

com.android.dex.DexException: Multiple dex files define 

Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionI

这意味着android-support-v4.jar 文件已被导入 android 项目两次或更多次

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2014-11-23
    相关资源
    最近更新 更多