当前位置: 首页 > 面试题库 >

意外的最高级别异常:com.android.dex.DexException:定义了多个dex文件

袁泰平
2023-03-14
问题内容

我尝试使用
Android Studio 在我的Android应用程序上使用Google Play服务时遇到麻烦。

我已经尝试了一切,但仍然无法正常工作。

这是错误。

Execution failed for task ':app:dexDebug'.

com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Users/jghg/Desktop/My App/Android/SDK/android-sdk-mac_86/build-
tools/19.0.1/dx –dex –output /Users/jghg/Desktop/My
App/Eureka/UDA/app/build/libs/app-debug.dex /Users/jghg/Desktop/My
App/Eureka/UDA/app/build/classes/debug /Users/jghg/Desktop/My
App/Eureka/UDA/app/build/dependency-cache/debug /Users/jghg/Desktop/My
App/Eureka/UDA/app/build/pre-
dexed/debug/classes-08979151dd1373bd3f799299d93376d22d4afa46.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/classes-167b9d3c5d689abe004c3fa5b0bcb945d3f0fc8e.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-dexed/debug/google-play-
services-ec20f8af7bb457c5095cae1afa0cee722582f198.jar /Users/jghg/Desktop/My
App/Eureka/UDA/app/build/pre-
dexed/debug/support-v4-13.0.0-473d85b8d55c88bfed3404072e6c132f96543429.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/support-v4-19.0.1-861cc05365a0e9262c764da37d61e3f93dc16de6.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/support-v4-19.0.1-dcc11377c764caea791f711123b8b678f876c3b6.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/twitter4j-async-3.0.5-0904cb320186fb23a9a9bf25a048c5bc4ec07bc2.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/twitter4j-core-3.0.5-41d2d5805e2d90cf77813a126306c4cbe22583ae.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/twitter4j-examples-3.0.5-adc1ee9b037c8061429560e6a5fe89ce8e502db6.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/twitter4j-media-
support-3.0.5-37d138cdc631738d13ddb6f4d34c560a9cd8e048.jar
/Users/jghg/Desktop/My App/Eureka/UDA/app/build/pre-
dexed/debug/twitter4j-stream-3.0.5-c96c138ea216b25631a1a8b47520ecaf33f288d8.jar
Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define
Lcom/google/ads/AdRequest$ErrorCode; 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)

Thanks. Best Regards.


问题答案:

当您在build.gradle的依赖项中多次包含相同的库/目录时,将发生错误。

因此,您拥有主要的“应用程序”,然后又有一堆子应用程序/模块/库。这些库是:1)gene_test_library,2)
genes_nine_old_androids_library和3)swipe_list_view_library

我叫Gene,所以这就是为什么所有这些“ gene”库的原因。

build.gradlefor“app”,我有:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.0'

    compile project(':libraries:gene_test_library')
    //compile project(':libraries:genes_nine_old_androids_library')
    compile project(':libraries:swipe_list_view_library')
}

build.gradle for gene_test_library, 我什么也没有:

dependencies {
}

Inside build.gradle for gene_nine_old_androids_library, I have:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
}

Inside build.gradle for swipe_list_view_library, I have:

dependencies {
    compile 'com.nineoldandroids:library:2.4.0+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
}

这行代码compile fileTree(dir: 'libs', include: ['*.jar'])
表示“嘿,在此模块内的'libs'文件夹内查找所有jar
文件。我在任何模块的libs文件夹中都没有任何内容,因此您
可以忽略该行代码。

所以我们可以说我取消了//compile project(':libraries:genes_nine_old_androids_library')在build.gradle该“app”模块。然后我会得到“UNEXPECTED TOP-LEVEL EXCEPTION:”错误。这是为什么?

好吧,//compile project(':libraries:genes_nine_old_androids_library')
build.gradlefor中编写内容与获取模块“app”的构建依赖项
“genes_nine_old_androids_library”并将其放置在那里相同。因此,
取消注释该//compile project(':libraries:genes_nine_old_androids_library')语句,
build.gradlefor“ app”模块变为:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.0'

    compile project(':libraries:gene_test_library')
    ***compile fileTree(dir: 'libs', include: ['*.jar'])***
    ***compile 'com.android.support:appcompat-v7:21.0.0'***
    compile project(':libraries:swipe_list_view_library')
}

注意现在如何compile 'com.android.support:appcompat-v7:21.0.0'显示
2倍。这就是错误的来源。



 类似资料:
  • 我在使用Android Studio的Android应用程序上尝试使用Google Play服务时遇到了麻烦。 我什么都试过了,还是不起作用。 这就是错误所在。 com.android.ide.common.internal.loggederrorexception:无法运行命令:/users/jghg/desktoes/my app/android/sdk/android-sdk-mac_86/

  • 问题内容: 在Android项目中,团队主要还是使用Eclipse并添加了一些第3方库,然后在运行gradle build时Android Studio无法在设备anf上运行,并出现错误: 对于不同的文件,以此类推10到20次 尝试过 和 和 对彼此而言 并编译’com.android.support:appcompat-v7:21.0.+’ Eclipse ADT没有问题。 如何使用Gradle

  • 错误:将字节码转换为dex时出错:原因:com.android.dex。DexException:多个dex文件定义Landroid/arch/lifecycle/LiveData$LifecycleBoundObserver; 我的 gradle 文件 **这就是错误,我明白了**

  • 我有两个jar库,都有一个gson.jar的副本,正因为如此,当我试图运行我的项目时,我得到一个异常,说意外的顶级异常,定义了多个Dex文件。我找到了几个消息来源,说只删除其中一个库,但我不能,因为我需要在两个jar中包括其他项目。有没有一种方法可以让项目中的两个jar都保持运行

  • Android4.2ZBarCodescan java应用程序需要在Windows7x64计算机上编译。 它的源代码就在这里。 安装了Android Studio,并使用Github import命令导入代码。在gradle文件API更改为23 多个dex文件定义LANDROID/SUPPORT/V4/AccessibilityService/AccessibilityServiceInfoCom