java - collector - android studio memory monitor
El archivo JAR de Android Studio Google que causa el límite de sobrecarga del GC excedió el error (6)
Creo que hay una manera separada de aumentar 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 )
Estoy usando Android Studio en OS X. Recibo este mensaje de error:
FALLO: la compilació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 intento 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.
En mi caso, para aumentar 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ú → Compilación → Ejecució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.)
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 programas 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).