Android Studio 2.1 ejecución instantánea java.lang.OutOfMemoryError: Límite de sobrecarga de GC superado
He actualizado a Android Studio 2.1 y tengo este error mientras estoy tratando de construir y ejecutar mi gran proyecto corporativo:
La ejecución falló para la tarea ': app: transformClassesWithDexForMyAppDebug'. Com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Límite de sobrecarga de GC superado
- Android Studio 2.0 ejecutar instantáneamente no funciona, pero aparecen estos consejos?
- ¿Cómo dividir los APK divididos creados mientras se usa instant-run, dentro del propio Android?
- Ejecución instantánea en Android Studio 2.0 (cómo desactivar)
- Instant run Android studio 2.2 Nunca recibo hotswap siempre reiniciar y la notificación Cambio de tipo de campo
- Androide InstantRun - Norton Security encuentra troyanos
He buscado a través del foro y desactivado ejecución instantánea, también escribir a mi build.gradle:
dexOptions { incremental true javaMaxHeapSize "6g" } ... dependencies{ compile 'com.android.support:multidex:' }
Pero no resolvió mi problema. Tengo multidex permitido en mi gradle, porque consigo el error sin él:
Com.android.dex.DexIndexOverflowException: ID del método no en [0, 0xffff]: 65536
Por lo que esta era la solución para él, y funcionó antes con las versiones anteriores de Android Studio (también trabajando para los demás en la empresa, que están usando Android Studio 1.4-2.0), pero no para mí desde que actualizé mi Android Studio.
¿Alguien tiene una idea de lo que puede causar el problema?
Lo que también es interesante que si sólo hago el proyecto no recibo el error, sólo si intento ejecutarlo. Cualquier idea es apreciada!
EDIT 1:
Lo que también es interesante, que si reinicio mi estudio de Android, que la primera ejecución es exitosa, pero la segunda no lo es.
EDIT 2:
Si establezco el tamaño de montón a más grande (como 8-10g) que la aplicación ni siquiera se compila en la primera ejecución.
EDIT 3:
Parece que el problema es con la ejecución instantánea , si forzar el estudio de Android para no usarlo (como desplegar a dos dispositivos a la vez o cambiar gradle.properties como en la respuesta) el error desaparece.
- La ejecución instantánea toma más tiempo que las compilaciones estándar
- Android: la aplicación se bloquea frecuentemente con una ejecución instantánea
- La conexión de Android Studio ADB deja caer el dispositivo conectado por cable desde 2.2 en Macintosh
- No se puede instanciar la actividad ... No encontró la clase WelcomeActivity en la ruta: DexPathList (con ejecución instantánea)
- La Interfaz de JavaScript de WebView sólo parece funcionar a través de Instant-Run de Android Studio, pero no cuando se compila a través de gradle regular
- Android Studio Instant ejecutar no funciona con java 8 en android
- Android Instant Ejecutar compilaciones lentas
- Aplicación para Android que comienza lentamente - dex2oat El código postal está ausente. Cancelado - Gradle 2.10
Añada esto al archivo gradle.properties
.
# The Gradle daemon aims to improve the startup and execution time of Gradle. # When set to true the Gradle daemon is to run the build. org.gradle.daemon=true # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=true # Enables new incubating mode that makes Gradle selective when configuring projects. # Only relevant projects are configured which results in faster builds for large multi-projects. # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand org.gradle.configureondemand=true
Encontrado aquí
Y en mi build.gradle
:
.... dexOptions { incremental false javaMaxHeapSize "2048M" preDexLibraries = false }//end dexOptions ....
Paso1: Cambiar build.grade
defaultConfig { ... // Enabling multidex support. multiDexEnabled true } dependencies { ... compile 'com.android.support:multidex:1.0.0' }
Paso 2: Configuración en la clase Aplicación
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); MultiDex.install(this); } }
Paso 3: Cambiar grade.properties
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
¡Funcionará!. Gracias.
defaultConfig { multiDexEnabled =true }
Agregue esto al archivo build.gradle de la aplicación
- ¿Cómo puedo añadir una subcarpeta a la carpeta en bruto de mi aplicación para Android?
- SSL de Android: sin certificado de nivel superior