Właśnie zaktualizowałem Android Studio do wersji 3.5 Beta 1 i otrzymuję
Traci ważność demona, ponieważ miejsce na sterty maszyny JVM jest wyczerpane
komunikat podczas działania kompilacji. Ponadto kompilacja zajmuje więcej czasu. Czy ktoś ma jakiś pomysł w tej sprawie?
android-studio
gradle
jvm
android-studio-3.5
Rishabh Sagar
źródło
źródło
Odpowiedzi:
Udało mi się rozwiązać ten problem dla mojego projektu React Native , konfigurując następujące elementy:
i
źródło
Można to naprawić, zwiększając skonfigurowany maksymalny rozmiar sterty dla projektu.
Poprzez IDE:
Dodaj poniższe wiersze do pliku gradle.properties. Poniżej rozmiaru pamięci można skonfigurować w oparciu o dostępność pamięci RAM
Poprzez GUI:
W ustawieniach wyszukiwania dla „Ustawienia pamięci” i zwiększyć IDE maksymalną wielkość sterty i Daemon maksymalną wielkość sterty jak na dostępność systemu RAM.
źródło
Gdy dodajesz więcej modułów do swojej aplikacji, istnieje niewiarygodne zapotrzebowanie na system kompilacji Androida, a domyślne ustawienia pamięci nie będą działać. Aby uniknąć błędów OutOfMemoryErrors podczas kompilacji Androida, należy odkomentować alternatywne ustawienie pamięci gradle obecne w /android/gradle.properties :
Możesz znaleźć gradle.properties w folderze Androida .
PS
Pozwólcie, że wyjaśnię podstawową terminologię, aby zrozumieć całość.
Demon : - Demon to program komputerowy, który działa jako proces w tle, zamiast być pod bezpośrednią kontrolą interaktywnego użytkownika.
Android Studio 2.1 udostępnia nową funkcję: Dex In Process , która może radykalnie zwiększyć prędkość całkowicie czystych kompilacji, a także poprawić wydajność Instant Run.
Aby skorzystać z Dex In Process , musisz zmodyfikować plik gradle.properties i zwiększyć ilość pamięci przydzielonej do maszyny wirtualnej Gradle Daemon o 1 GB, do co najmniej 2 GB, za pomocą właściwości org.gradle.jvmargs :
Określa argumenty maszyny JVM używane w procesie demona. To ustawienie jest szczególnie przydatne przy dostosowywaniu ustawień pamięci.
Domyślna wartość:
Domyślna alokacja pamięci maszyny wirtualnej Gradle Daemon to 1 gigabajt - co jest niewystarczające do obsługi dexInProcess, więc aby skorzystać, musisz ustawić ją na co najmniej 2 gigabajty.
Dex in process działa, umożliwiając uruchamianie wielu procesów DEX w ramach jednej maszyny wirtualnej, która jest również współdzielona z Gradle, dlatego przed włączeniem należy przydzielić dodatkową pamięć - ta pamięć będzie współdzielona między Gradle i wieloma procesami DEX.
Jeśli zwiększyłeś javaMaxHeapSize w pliku build.gradle na poziomie modułu powyżej domyślnego 1 gigabajta, będziesz musiał odpowiednio zwiększyć pamięć przypisaną do demona Gradle.
Gdy jest wystarczająco dużo pamięci przypisanej Dex in Process, jest domyślnie włączone, co poprawia ogólną wydajność kompilacji i usuwa obciążenie związane z uruchamianiem wielu równoległych wystąpień maszyn wirtualnych . Rezultatem jest znaczna poprawa wszystkich czasów kompilacji, w tym kompilacji natychmiastowych, przyrostowych i pełnych.
Źródło: https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
https://rnfirebase.io/#increasing-android-build-memory
źródło
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
w gradle.properties. Jeśli nadal nie działa, przepraszam, nie mam pojęcia, jak to naprawić.org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
wandroid/gradle.properties
pracującej lice to urok. Dzięki!! @KailashUniyal