A solução é aumentar a memória de construção do Android.
À medida que você adiciona mais módulos ao seu aplicativo, há uma demanda incrível colocada no sistema de compilação do Android e as configurações de memória padrão não funcionam. Para evitar OutOfMemoryErrors durante as compilações do Android, você deve descomentar a configuração de memória gradle alternativa presente em /android/gradle.properties :
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Você pode encontrar gradle.properties dentro da pasta android .
PS
O que estamos fazendo e por que isso ajuda?
Deixe-me esclarecer algumas terminologias básicas para entender a coisa toda.
Daemon : - Um daemon é um programa de computador executado como um processo em segundo plano, em vez de estar sob o controle direto de um usuário interativo.
O Android Studio 2.1 habilita um novo recurso: Dex In Process , que pode aumentar drasticamente a velocidade de compilações limpas completas, bem como melhorar o desempenho do Instant Run.
Para aproveitar as vantagens do Dex In Process , você precisará modificar seu arquivo gradle.properties e aumentar a quantidade de memória alocada para a VM Gradle Daemon em 1 Gb, para um mínimo de 2 Gb, usando a propriedade org.gradle.jvmargs :
Especifica os argumentos JVM usados para o processo daemon. A configuração é particularmente útil para ajustar as configurações de memória.
org.gradle.jvmargs=-Xmx2048m
Valor padrão:
-Xmx10248m -XX:MaxPermSize=256m
A alocação de memória padrão do Gradle Daemon VM é de 1 gigabyte - o que é insuficiente para suportar dexInProcess, portanto, para aproveitar as vantagens, você precisará configurá-lo para pelo menos 2 gigabytes.
O Dex em processo funciona permitindo que vários processos DEX sejam executados em uma única VM que também é compartilhada com o Gradle. É por isso que você precisa alocar a memória extra antes de poder ser habilitado - essa memória será compartilhada entre o Gradle e vários processos DEX.
Se você aumentou o javaMaxHeapSize em seu arquivo build.gradle de nível de módulo além do padrão de 1 gigabyte, você precisará aumentar a memória atribuída ao Gradle Daemon de forma correspondente.
Quando há memória suficiente atribuída, Dex in Process é habilitado por padrão, melhorando o desempenho geral de construção e removendo a sobrecarga de iniciar várias instâncias paralelas de VM . O resultado é uma melhoria significativa em todos os tempos de build, incluindo Instant Run, builds incrementais e completos.
Fonte:
https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
https://rnfirebase.io/#increasing-android-build-memory