Ich habe gerade das Android Studio auf 3.5 Beta 1 aktualisiert und bekomme es
Daemon läuft ab, weil der JVM-Heap-Speicherplatz erschöpft ist
Nachricht, während der Build ausgeführt wird. Außerdem dauert der Build länger. Hat jemand eine Idee dazu?
android-studio
gradle
jvm
android-studio-3.5
Rishabh Sagar
quelle
quelle
Antworten:
Ich konnte dies für mein React Native- Projekt lösen, indem ich Folgendes konfigurierte:
und
quelle
Dies kann behoben werden, indem die konfigurierte maximale Heap-Größe für das Projekt erhöht wird .
Durch IDE:
Fügen Sie die folgenden Zeilen in die Datei gradle.properties ein. Die unten angegebene Speichergröße kann basierend auf der RAM-Verfügbarkeit konfiguriert werden
Über die GUI:
Suchen Sie in den Einstellungen nach "Speichereinstellungen" und erhöhen Sie die IDE max Heap - Größe und Daemon max Heap - Größe gemäß dem System - RAM Verfügbarkeit.
quelle
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 :
Sie finden gradle.properties im Android- Ordner.
PS
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.
Standardwert:
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
quelle
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
in gradle.properties zu setzen. Wenn es immer noch nicht funktioniert, habe ich leider keine Ahnung, wie ich das beheben kann.org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
inandroid/gradle.properties
gearbeitet wie ein Zauber. Vielen Dank!! @ KailashUniyal