Android Studio Archivo JAR de Google que genera un error de límite de sobrecarga de GC
Estoy usando Android Studio en OS X. Estoy recibiendo este mensaje de error:
FALLA: La generación falló con una excepción.
- ¿Cómo determinas si una .sqlite o .sqback está dañada en Java?
- Excepción de puntero nulo en ActionBar
- Cambiar android: Theme.Dialog para encender el cuadro de diálogo de AppCompat
- Cómo llamar a las actividades de un hilo no actividad?
- "No hacer nada" con el operador ternario
Lo que salió mal: La ejecución falló para la tarea ': app: preDexDebug'. Com.android.ide.common.internal.LoggedErrorException: Error al ejecutar el comando: / Aplicaciones / Android Studio.app/sdk/build-tools/android-4.4W/dx –dex –output / Users / alex / AndroidStudioProjects / SilentSMS / app / build / intermedios / 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 añadí a mi proyecto – el proyecto que estoy tratando de construir es:
Https://github.com/domi007/silentSMS/
Entiendo que es porque mis valores xms y xmx son demasiado bajos. Los incrementé en:
/ Applications / Android Studio.app/bin/idea.vmoptions para que ahora diga:
-Xms256m -Xmx1024m
Sin embargo, sigo recibiendo el error. ¿De qué podría ser esto causado? Aparte de la aplicación silentSMS que es un proyecto de Eclipse y yo portar el código a Android Studio no he cambiado nada. En términos de Android Studio detección de errores – no lo hace, y todo lo demás se ve bien.
- El descubrimiento de servicio falló la excepción utilizando Bluetooth en Android
- ¿Aplicaciones de dibujo con las puntas de los dedos en Android?
- El detector de eventos de valor único de Firebase no devuelve
- ¿Cómo puedo actualizar información de una actividad de Android desde un servicio de fondo
- ¿Por qué no se debería escribir una aplicación de Android en C / C ++ porque "simplemente prefieres programar en C / C ++"?
- ¿Hay algún motor de juego 2D mejor que Libgdx?
- Clases de herencia
- Android Support Annotation "debería tener @Retention (RetentionPolicy.SOURCE)"
Pienso que hay una manera separada de aumentar el límite del montón de la operación dexing. Añadir 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 aumentar el tamaño del montón se ve así:
Uso de Android Studio 1.1.0
android { dexOptions { incremental true javaMaxHeapSize "2048M" } }
Ponga 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 del 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 }
Desactivar mi ejecución instantánea por:
Preferencias de menú → Crear → Ejecutar instantáneamente "Habilitar la ejecución instantánea en el código de intercambio en caliente"
Supongo que es la ejecución instantánea que hace que la construcción de lento y crea un archivo de gran tamaño pidXXX.hprof que hace que el límite de gastos generales AndroidStudio gc superado.
(Mi SDK del dispositivo es 19.)
Me forcé a cerrar todo Java.exe de taskmanger, reinició Android Studio y funcionó para mí
- Selector de dispositivos Android: mi dispositivo parece estar fuera de línea
- ¿Cuándo se ejecuta SQLiteOpenHelper onCreate () / onUpgrade ()?