我使用的是Android工作室在OSX。我收到此错误信息:
失败:建立失败,一个异常
出了什么问题: 执行失败的任务:应用程序:preDexDebug。 com.android.ide.common.internal.LoggedErrorException:无法运行命令: /应用/ Android的Studio.app / SDK /集结工具/ Android为4.4W / DX --dex --output /Users/alex/AndroidStudioProjects/SilentSMS/app/build/intermediates/$p$p-dexed/debug/android-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar
错误code: 3 输出:
意外的顶级错误:
java.lang.OutOfMemoryError:GC开销超过限制
在com.android.dx.cf。code.RopperMachine.getSources(RopperMachine.java:665)
在com.android.dx.cf。code.RopperMachine.run(RopperMachine.java:288)
在com.android.dx.cf。code.Simulator $ SimVisitor.visitLocal(Simulator.java:612)
。在com.android.dx.cf code.Byte codeArray.parseInstruction(字节codeArray.java:412)
在com.android.dx.cf。code.Simulator.simulate(Simulator.java:94)
在com.android.dx.cf。code.Ropper.processBlock(Ropper.java:782)
在com.android.dx.cf。code.Ropper.doit(Ropper.java:737)
在com.android.dx.cf。code.Ropper.convert(Ropper.java:346)
在com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282)
在com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
在com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
在com.android.dx.command.dexer.Main.processClass(Main.java:682)
在com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
在com.android.dx.command.dexer.Main.access $ 600(Main.java:78)
在com.android.dx.command.dexer.Main $ 1.processFileBytes(Main.java:572)
在com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
在com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
在com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
在com.android.dx.command.dexer.Main.processOne(Main.java:596)
在com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
在com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
在com.android.dx.command.dexer.Main.run(Main.java:230)
在com.android.dx.command.dexer.Main.main(Main.java:199)
在com.android.dx.command.Main.main(Main.java:103)
我使用这个库:
http://grep$c$c.com/snapshot/repository.grep$c$c.com/java/ext/com.google.android/android/4.3_r2.1/
我把罐子,把它添加到我的项目 - 这个项目我想打造的是:
https://github.com/domi007/silentSMS/
我的理解是,因为我的XMS和XMX值太低。我增加了他们:
/应用/ Android的Studio.app /斌/ idea.vmoptions因此现在说:
-Xms256m -Xmx1024m
但我仍然得到错误。任何想法,为什么会引起的。除了silentSMS应用程序是一个Eclipse项目,我移植了code交给机器人工作室我已经什么也没有改变。在机器人工作室察觉错误的方面 - 它没有,一切看起来不错。帮助将不胜AP preciated。 谢谢
解决方案我觉得有提高德兴操作的堆限制一个单独的方法。添加到您的机器人
封在 build.gradle
文件:
dexOptions {
javaMaxHeapSize4G
}
,看看有没有什么帮助。
(想法礼貌的this从斯科特·巴塔答案)
I am using Android Studio on OSX. I am getting this error message:
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':app:preDexDebug'. com.android.ide.common.internal.LoggedErrorException: Failed to run command: /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
Error Code: 3 Output:
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)
I am using this library:
http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/
I pulled the jar and added it to my project - the project I am trying to build is:
https://github.com/domi007/silentSMS/
I understand it is because my xms and xmx values are too low. I increased them in:
/Applications/Android Studio.app/bin/idea.vmoptions so that it now says:
-Xms256m -Xmx1024m
however i still get the error. Any idea why this would be caused. Apart from the silentSMS app being an Eclipse project and me porting the code over to Android Studio I have changed nothing. In terms of Android Studio spotting errors - it doesnt, everything else looks fine. Help would be greatly appreciated. Thanks
解决方案I think there's a separate way to raise the heap limit of the dexing operation. Add this to your android
closure in your build.gradle
file:
dexOptions {
javaMaxHeapSize "4g"
}
and see if that helps.
(idea courtesy of this answer from Scott Barta)