我在 OS X 上使用 Android Studio。我收到此错误消息:
FAILURE:构建失败并出现异常。 * 出了什么问题:任务“:app:preDexDebug”执行失败。com.android.ide.common.internal.LoggedErrorException:无法运行命令:/Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx –dex –output /Users/alex/AndroidStudioProjects/ SilentSMS/app/build/intermediates/pre- dexed/debug/android-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar 错误代码:3 输出:
FAILURE:构建失败并出现异常。
* 出了什么问题:任务“:app:preDexDebug”执行失败。com.android.ide.common.internal.LoggedErrorException:无法运行命令:/Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx –dex –output /Users/alex/AndroidStudioProjects/ SilentSMS/app/build/intermediates/pre- dexed/debug/android-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar
错误代码:3 输出:
UNEXPECTED TOP-LEVEL ERROR: java.lang.OutOfMemoryError: GC overhead limit exceeded at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:665) at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288) at com.android.dx.cf.code.Simulator$SimVisitor.visitLocal(Simulator.java:612) at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:412) at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94) at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:782) at com.android.dx.cf.code.Ropper.doit(Ropper.java:737) at com.android.dx.cf.code.Ropper.convert(Ropper.java:346) at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282) at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139) at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94) at com.android.dx.command.dexer.Main.processClass(Main.java:682) at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) at com.android.dx.command.dexer.Main.access$600(Main.java:78) at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) at com.android.dx.command.dexer.Main.processOne(Main.java:596) at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) 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)
我正在使用这个库:
http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/
我提取了 JAR 文件并将其添加到我的项目中 - 我正在尝试构建的项目是:
https://github.com/domi007/silentSMS/
我知道这是因为我的 xms 和 xmlx 值太低。我增加了它们:
/Applications/Android Studio.app/bin/idea.vmoptions 所以它现在说:
-Xms256m -Xmx1024m
但是,我仍然收到错误消息。这可能是什么原因造成的?除了silentSMS 应用程序是一个Eclipse 项目并且我将代码移植到Android Studio 之外,我没有进行任何更改。在 Android Studio 发现错误方面 - 它没有,其他一切看起来都很好。
我认为有一种单独的方法可以提高 dexing 操作的堆限制。将此添加到文件中的android闭包中build.gradle:
android
build.gradle
dexOptions { javaMaxHeapSize "4g" }
看看是否有帮助。
(想法来自 Scott Barta 的回答)