El archivo JAR de Android Studio Google que causa el límite de sobrecarga del GC excedió el error

Estoy usando Android Studio en OS X. Recibo este mensaje de error:

FALLO: la comstackción falló con una excepción.

  • Qué salió mal: Error en la ejecución de la tarea ‘: aplicación: preDexDebug’. com.android.ide.common.internal.LoggedErrorException: error al ejecutar el comando: / Applications / Android Studio.app/sdk/build-tools/android-4.4W/dx –dex –output / Users / alex / AndroidStudioProjects / SilentSMS / app / build / intermediatetes / pre-dexed / debug / android-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar

    Código de error: 3 Salida:

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) 

Estoy usando esta biblioteca:

http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/

Saqué el archivo JAR y lo agregué a mi proyecto; el proyecto que bash construir es:

https://github.com/domi007/silentSMS/

Entiendo que es porque mis valores xms y xmx son demasiado bajos. Los incrementé en:

/ Aplicaciones / Android Studio.app/bin/idea.vmoptions para que ahora diga:

 -Xms256m -Xmx1024m 

Sin embargo, sigo recibiendo el error. ¿Qué podría ser causado por esto? Además de que la aplicación silentSMS es un proyecto de Eclipse y de que transfiero el código a Android Studio, no he cambiado nada. En términos de errores de detección de Android Studio, no es así, y todo lo demás se ve bien.

Creo que hay una manera separada de boost el límite de montón de la operación de dexing. Agregue esto a su cierre de android en su archivo build.gradle :

 dexOptions { javaMaxHeapSize "4g" } 

y ver si eso ayuda.

(idea cortesía de esta respuesta de Scott Barta )

En mi caso, para boost el tamaño del montón se ve así:

Usando Android Studio 1.1.0

 android { dexOptions { incremental true javaMaxHeapSize "2048M" } } 

Coloque el código anterior en su archivo Build.gradle .

Este nuevo problema es causado por la última versión de Android.

Vaya a la carpeta raíz de su proyecto, abra gradle.properties y agregue las siguientes opciones:

 org.gradle.daemon=true org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.configureondemand=true 

A continuación, agregue estos cambios en su archivo build.gradle :

 dexOptions { incremental = true preDexLibraries = false javaMaxHeapSize "4g" // 2g should be also OK } 

Inhabilito mi ejecución instantánea por:

Preferencia de menú → ComstackciónEjecución instantánea “Habilitar la ejecución instantánea al código de intercambio en caliente”

Supongo que es la ejecución instantánea lo que hace que la creación sea lenta y crea un archivo pidXXX.hprof de gran tamaño que hace que se exceda el límite de gastos generales de AndroidStudio gc.

(El SDK de mi dispositivo es 19.)

Forcé cerrar todos los Java.exe del taskmanger, reinicié Android Studio y funcionó para mí

enter image description here

Para mí, ninguna de las respuestas trabajadas que vi aquí funcionó. Supuse que tener la CPU trabajando extremadamente duro hace que la computadora se caliente. Después de cerrar progtwigs que consumen grandes cantidades de CPU (como Chrome) y de enfriar mi computadora portátil, el problema desapareció.

Como referencia: tenía la CPU en 96% -97% y el uso de memoria en más de 2,000,000K por un proceso java.exe (que en realidad era un proceso relacionado con gradle).

Agregar esto al archivo build.gradle

 dexOptions { javaMaxHeapSize "2g" }