【问题标题】:Android Studio will not build APK FileAndroid Studio 不会构建 APK 文件
【发布时间】:2015-12-01 07:25:26
【问题描述】:

我在 Android Studio 中有一个项目,之前已成功导出。但是,我更新了 IDE,现在我收到了这个错误:

Error:Execution failed for task ':android:dexRelease'.

com.android.ide.common.internal.LoggedErrorException:无法运行命令: C:\Users\Ajay\Downloads\android-sdk_r24.4.1-windows\android-sdk-windows\build-tools\21.0.0\dx.bat -JXmx4g --dex --force-jumbo --output C:\ Users\Ajay\Downloads\jetpack(1)\JetPack\game\android\build\intermediates\dex\release --input-list=C:\Users\Ajay\Downloads\jetpack(1)\JetPack\game\android\ build\intermediates\tmp\dex\release\inputList.txt 错误代码: 2 输出: 意外的顶级异常: com.android.dex.DexIndexOverflowException:方法 ID 不在 [0, 0xffff] 中:65536 在 com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502) 在 com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:277) 在 com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491) 在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168) 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:189) 在 com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:302) 在 com.android.dx.command.dexer.Main.run(Main.java:245) 在 com.android.dx.command.dexer.Main.main(Main.java:214) 在 com.android.dx.command.Main.main(Main.java:106)

以前,我在使用 Google Play 服务时遇到过错误。所以我将我的 .build 文件编辑为:

dependencies {
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:support-v4:22.0.0'
compile 'com.google.android.gms:play-services:7.8.0'

和之前的.build文件一样:

dependencies {
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:support-v4:22.0.0'
    compile 'com.google.android.gms:play-services:+'

我不需要在更新前编辑我的 .build 文件,所以我不确定是什么问题。有什么想法吗?

【问题讨论】:

标签: java android android-activity libgdx


【解决方案1】:

问题是您正在实现大型库并且您的 dex 文件过大。

compile 'com.google.android.gms:play-services:7.8.0'

您不需要实施整个服务。你应该把它们分开。

compile 'com.google.android.gms:play-services-wearable:8.3.0'

更多 docs 来自这里。

通过这样做,您减少项目的方法。所以dex文件也会缩小。如果你的问题存在,那么你需要通过实现Multidex来拆分你的dex文件

祝你好运。

【讨论】:

    【解决方案2】:

    我认为问题与您的混淆工具 Dexguard 有关。尝试删除它并重新构建。我不熟悉 Dexguard,但在 Proguard 中,如果在构建时删除了这些类,你可以使用 -keep 保留所需的类。

    【讨论】:

    • 关于如何删除 Dexguard 工具的任何想法?
    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 2015-02-17
    • 2013-07-16
    • 1970-01-01
    • 2022-10-25
    • 2015-06-15
    相关资源
    最近更新 更多