Die Lösung besteht darin, den Build-Speicher für Android zu erhöhen.
Wenn Sie Ihrer App weitere Module hinzufügen, wird eine unglaubliche Anforderung an das Android-Build-System gestellt, und die Standardspeichereinstellungen funktionieren nicht. Um OutOfMemoryErrors während Android-Builds zu vermeiden , sollten Sie die alternative Gradle-Speichereinstellung in /android/gradle.properties auskommentieren :
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Sie finden gradle.properties im Android- Ordner.
PS
Was machen wir das und warum hilft es?
Lassen Sie mich einige grundlegende Begriffe zum Verständnis des Ganzen klarstellen.
Daemon : - Ein Daemon ist ein Computerprogramm, das als Hintergrundprozess ausgeführt wird und nicht direkt von einem interaktiven Benutzer gesteuert wird.
Android Studio 2.1 ermöglicht eine neue Funktion: Dex In Process , mit der die Geschwindigkeit vollständiger sauberer Builds drastisch erhöht und die Leistung von Instant Run verbessert werden kann.
Um Dex In Process nutzen zu können , müssen Sie Ihre Datei gradle.properties ändern und den der Gradle Daemon-VM zugewiesenen Speicherplatz mithilfe der Eigenschaft org.gradle.jvmargs um 1 GB auf mindestens 2 GB erhöhen ::
Gibt die JVM-Argumente an, die für den Daemon-Prozess verwendet werden. Die Einstellung ist besonders nützlich, um die Speichereinstellungen zu optimieren.
org.gradle.jvmargs=-Xmx2048m
Standardwert:
-Xmx10248m -XX:MaxPermSize=256m
Die Standardspeicherzuweisung für Gradle Daemon VM beträgt 1 Gigabyte. Dies reicht nicht aus, um dexInProcess zu unterstützen. Um die Vorteile nutzen zu können, müssen Sie mindestens 2 Gigabyte festlegen.
Dex in process ermöglicht die Ausführung mehrerer DEX-Prozesse in einer einzigen VM, die auch für Gradle freigegeben ist. Aus diesem Grund müssen Sie den zusätzlichen Speicher zuweisen, bevor er aktiviert werden kann. Dieser Speicher wird von Gradle und mehreren DEX-Prozessen gemeinsam genutzt.
Wenn Sie die javaMaxHeapSize in Ihrer build.gradle-Datei auf Modulebene über den Standardwert von 1 Gigabyte hinaus erhöht haben, müssen Sie den dem Gradle Daemon zugewiesenen Speicher entsprechend erhöhen.
Wenn genügend Speicher zugewiesen ist, ist Dex in Process standardmäßig aktiviert, wodurch die allgemeine Build-Leistung verbessert und der Aufwand für das Starten mehrerer paralleler VM-Instanzen verringert wird . Das Ergebnis ist eine signifikante Verbesserung aller Build-Zeiten, einschließlich Instant Run, inkrementeller und vollständiger Builds.
Quelle:
https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
https://rnfirebase.io/#increasing-android-build-memory