当前位置: 首页 > 知识库问答 >
问题:

Android Studio中意外的顶级例外

慕项明
2023-03-14

在我的一个项目中,我在构建gradle文件时得到了这个异常

错误:任务': emBazaarV4: dexDebug'执行失败。

com.android.dx.command.dexer.Main.main:无法运行命令:F:\AndroidSDK\build-tools\21.1.2\Main.java:215--dex--no-优化--out F:\AndroidStudioWorkspace\EmBazaarV4\emBazaarV4\build\中介机构\dex\debug--input-list=F:\AndroidStudioWorkspace\EmBazaarV4\emBazaarV4\build\中介机构\tmp\dex\debug\com.android.dx.command.Main.main错误代码:2输出:未预料到的最高级别例外:Main.java:106:多个dex文件定义Lcom/google/gson/JsonSerializercom.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)DexMerger.java:189com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)com.android.dx.command.dexer.Main.run(Main.java:246)com.android.ide.common.internal.LoggedErrorException(dx.bat)inputList.txt(com.android.dex.DexException)

这是我的依赖项

dependencies {
    compile 'com.facebook.android:facebook-android-sdk:3.22.0'
    compile 'com.aviary.android.feather.sdk:aviary-sdk:3.6.3'
    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.squareup.okhttp:okhttp:2.2.0'
    compile 'com.squareup.okio:okio:1.1.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.picasso:picasso:2.4.0'
    compile files('libs/commons-io-2.4.jar')
    compile files('libs/crashlytics.jar')
    compile files('libs/httpmime-4.1.3.jar')
    compile files('libs/jumblr-0.0.8-jar-with-dependencies.jar')
    compile files('libs/signpost-commonshttp4-1.2.1.2.jar')
    compile files('libs/signpost-core-1.2.1.2.jar')
    compile files('libs/simplesocialsharing.jar')
    compile files('libs/gcm.jar') }

我已经尝试了一切,但不知道如何排除多个dex文件。我已经找到了这样的v4解决方案

 configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}

那么,对于这种错误,有没有通用的解决方案?

共有3个答案

欧阳衡
2023-03-14

您正在应用中使用乳牙Google Play服务。最近,您可以在使用它时获得更多颗粒度。

按照本指南,您只能使用所需的部件。也许这将解决问题。您可以这样使用它:

compile com.google.android.gms:play-services-base:6.5.87
compile <... some other google play services part ...>

你可以在这个链接中阅读完整的“零件”列表

太叔昊苍
2023-03-14

正如Gabriele所说,TopLevel异常总是由于同一库的不同版本的冲突而发生。

首先,我建议,尽可能避免使用添加文件依赖项,始终尝试从jcenter存储库添加依赖项。看起来 gradle 负责处理冲突的依赖项。

所以现在,有一些方法可以避免它:

> < li>

仅使用一个包含所有必需类的版本。就像app compact有所有的v4支持类,所以如果你正在导入appcompact v7,你不需要导入v4支持版本。

您始终可以从编译的依赖项中排除包。例如:

//for the package:
dependencies {
    compile("com.android.support:support-v4:21.0.3") {
          exclude group: 'com.android.support', module: 'support-v4'
    }
}
暨成双
2023-03-14

这个错误

意外的顶级例外:com.android.dex.DexException:多个dex文件

当您使用同一库的不同版本时会发生这种情况。

在您的情况下,它发生在gson库中:Lcom/google/gson/JsonSerializer;

检查依赖项。例如,OkHttp使用2.2.3版本。https://github.com/square/okhttp/blob/master/pom.xml#L44

 类似资料:
  • 我试图编写一个简单的android应用程序,我收到了这个错误消息。请帮忙 错误:任务执行失败:应用程序:dexDebug。 com.android.dx.command.dexer.Main.main:无法运行命令:D:\用户\用户\AppData\本地\Android\sdk\build-tools\21.1.2\Main.java:215--dex--no-优化--out C:\用户\用户\桌

  • Android Mainfest Libs文件夹现在不存在Libs文件夹

  • 当我使应用程序使用许多库时。我通常遇到的错误是 此错误有一些原因,因为: 数函数 关于第二种情况,很难检测嵌套了什么库。 如果你对这个问题有经验,请分享给我。 更新:

  • 我只有java版本1.8.0_45()。所以,你建议的解决方案不能解决我的问题。 当我运行应用程序时,它会抛出以下错误: 意外的顶级异常:错误:com.android.dx.cf.iface。ParseException:com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)处的坏类文件magic(cafe

  • 我有两个项目共享同一个aidl文件。 在第一个项目中,构建在Eclipse和Android Studio中运行到完成。 如何确定问题????这是什么原因造成的?我正在使用com.google.android.vending.licensing。这可能是相关的吗? 我曾经看到过一个库被包含两次(不同版本)的问题,但这似乎不是这里的问题。任何想法都将非常感谢!

  • 导入osmand项目时发生错误: 通用域名格式。Android石斑鱼类。常见的内部的LoggedErrorException:无法运行命令:E:\Android\sdk\build tools\21.1.2\dx。bat--dex--force jumbo--输出E:\Android\u test\u projects\Osmand-master2\Osmand-master\Osmand\bui