Acabo de actualizar Android Studio a 3.5 Beta 1 y estoy obteniendo

Daemon caducado porque el espacio de almacenamiento dinámico JVM está agotado

Mensaje mientras se ejecuta la compilación. Además, la construcción está tardando más en completarse. ¿Alguien tiene alguna idea con respecto a esto?

52
Rishabh Sagar 10 may. 2019 a las 13:12

3 respuestas

La mejor respuesta

Esto se puede solucionar aumentando el tamaño máximo de almacenamiento dinámico configurado para el proyecto.

A través de IDE:

Agregue las líneas siguientes en el archivo gradle.properties. Por debajo del tamaño de la memoria se puede configurar en función de la disponibilidad de RAM

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m

A través de la GUI:

En la Configuración, busque 'Configuración de memoria' y aumente el IDE max heap size y Daemon max heap size según la disponibilidad de RAM del sistema.

Memory Settings in Android Studio

38
Rishabh Sagar 21 nov. 2019 a las 06:17

Pude resolver esto para mi proyecto React Native configurando lo siguiente:

// gradle.properties
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

Y

// app/build.gradle
android {
    dexOptions {
       javaMaxHeapSize "3g"
    }
}
61
MattBooth 9 oct. 2019 a las 17:35

La solución es aumentar la memoria de compilación de Android.

A medida que agrega más módulos a su aplicación, existe una increíble demanda en el sistema de compilación de Android, y la configuración de memoria predeterminada no funcionará. Para evitar OutOfMemoryErrors durante las compilaciones de Android, debe descomentar la configuración de memoria alternativa gradle presente en /android/gradle.properties :

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

Puede encontrar gradle.properties dentro de la carpeta android .

PD

¿Qué estamos haciendo esto y por qué ayuda?

Permítanme aclarar una terminología básica para comprender todo el asunto.

Daemon : - Un daemon es un programa informático que se ejecuta como un proceso en segundo plano, en lugar de estar bajo el control directo de un usuario interactivo.

Android Studio 2.1 habilita una nueva característica: Dex In Process , que puede aumentar drásticamente la velocidad de las compilaciones completas y mejorar el rendimiento de Instant Run.

Para aprovechar Dex In Process , deberá modificar su archivo gradle.properties y aumentar la cantidad de memoria asignada a la Gradle Daemon VM en 1 Gb, para un mínimo de 2 Gb, utilizando la propiedad org.gradle.jvmargs:

Especifica los argumentos de JVM utilizados para el proceso de daemon. La configuración es particularmente útil para ajustar la configuración de la memoria.

org.gradle.jvmargs=-Xmx2048m

Valor por defecto:

-Xmx10248m -XX:MaxPermSize=256m

La asignación de memoria predeterminada de Gradle Daemon VM es de 1 gigabyte, lo que es insuficiente para admitir dexInProcess, por lo que para aprovecharlo deberá configurarlo en al menos 2 gigabytes.

Dex en proceso funciona al permitir que múltiples procesos DEX se ejecuten dentro de una sola VM que también se comparte con Gradle, por lo que debe asignar la memoria adicional antes de que pueda habilitarse: esa memoria se compartirá entre Gradle y múltiples procesos DEX.

Si ha aumentado javaMaxHeapSize en su archivo build.gradle de nivel de módulo más allá del valor predeterminado de 1 gigabyte, necesitará aumentar la memoria asignada al Gradle Daemon correspondientemente.

Cuando hay suficiente memoria asignada, Dex in Process está habilitado de forma predeterminada, mejorando el rendimiento general de la compilación y eliminando la sobrecarga de iniciar múltiples instancias de VM paralelas . El resultado es una mejora significativa en todos los tiempos de compilación, incluidas las ejecuciones instantáneas, incrementales y completas.

Fuente : https://medium.com/ google-developers / rapid-android-studio-builds-with-dex-in-process-5988ed8aa37e

https://rnfirebase.io/#increasing-android-build-memory

4
Kailash Uniyal 9 abr. 2020 a las 21:05