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 demanda increíble 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 gradle alternativa 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 de Android .
PD
¿Qué estamos haciendo esto y por qué ayuda?
Permítanme aclarar algo de terminología básica para entender todo.
Daemon : - Un daemon es un programa de computadora 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 función: Dex In Process , que puede aumentar drásticamente la velocidad de las compilaciones completamente limpias, así como 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 VM Gradle Daemon en 1 Gb, a un mínimo de 2 Gb, utilizando la propiedad org.gradle.jvmargs :
Especifica los argumentos de JVM que se utilizan para el proceso de demonio. 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 la VM de Gradle Daemon es de 1 gigabyte, lo cual 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 el javaMaxHeapSize en su archivo build.gradle a 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, lo que mejora el rendimiento general de la compilación y elimina la sobrecarga de iniciar varias instancias de VM paralelas . El resultado es una mejora significativa en todos los tiempos de compilación, incluidas las compilaciones instantáneas, incrementales y completas.
Fuente:
https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
https://rnfirebase.io/#increasing-android-build-memory