Android Studio'yu 3.5 Beta 1'e güncelledim ve
JVM yığın alanı tükendiği için Daemon'un süresi doluyor
yapı çalışırken mesaj. Ayrıca, derlemenin tamamlanması daha fazla zaman alıyor. Bununla ilgili bir fikri olan var mı?
Android Studio'yu 3.5 Beta 1'e güncelledim ve
JVM yığın alanı tükendiği için Daemon'un süresi doluyor
yapı çalışırken mesaj. Ayrıca, derlemenin tamamlanması daha fazla zaman alıyor. Bununla ilgili bir fikri olan var mı?
Yanıtlar:
Bunu React Native projem için aşağıdakileri yapılandırarak çözebildim :
// gradle.properties
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
ve
// app/build.gradle
android {
dexOptions {
javaMaxHeapSize "3g"
}
}
Bu , proje için yapılandırılmış maksimum yığın boyutunu artırarak düzeltilebilir .
IDE aracılığıyla:
Aşağıdaki satırları gradle.properties dosyasına ekleyin. Aşağıdaki bellek boyutu, RAM kullanılabilirliğine göre yapılandırılabilir
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m
GUI aracılığıyla:
Ayarlar'da, 'Bellek Ayarları'nı arayın ve sistem RAM kullanılabilirliğine göre IDE maksimum yığın boyutunu ve Daemon maksimum yığın boyutunu artırın .
Çözüm, Android derleme belleğini artırmaktır.
Uygulamanıza daha fazla modül ekledikçe, Android derleme sistemine inanılmaz bir talep gelir ve varsayılan bellek ayarları çalışmaz. Android derlemeleri sırasında OutOfMemoryErrors'ı önlemek için /android/gradle.properties dosyasında bulunan alternatif gradle bellek ayarının açıklamasını kaldırmalısınız :
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Gradle.properties dosyasını android klasörünün içinde bulabilirsiniz .
PS
Bunu ne yapıyoruz ve neden yardımcı oluyor?
Her şeyi anlamak için bazı temel terminolojiyi açıklığa kavuşturmama izin verin.
Daemon : - Bir arka plan programı, etkileşimli bir kullanıcının doğrudan kontrolü altında olmaktan ziyade bir arka plan işlemi olarak çalışan bir bilgisayar programıdır.
Android Studio 2.1 yeni bir özelliği etkinleştirir: Tam temiz derlemelerin hızını önemli ölçüde artırabilen ve Anında Çalıştırma performansını iyileştirebilen Dex In Process .
Dex In Process'ten yararlanmak için, gradle.properties dosyanızı değiştirmeniz ve org.gradle.jvmargs özelliğini kullanarak Gradle Daemon VM'ye ayrılan bellek miktarını 1 Gb artırarak minimum 2 Gb'ye çıkarmanız gerekir. :
Arka plan programı işlemi için kullanılan JVM bağımsız değişkenlerini belirtir. Ayar, özellikle bellek ayarlarında ince ayar yapmak için kullanışlıdır.
org.gradle.jvmargs=-Xmx2048m
Varsayılan değer:
-Xmx10248m -XX:MaxPermSize=256m
Varsayılan Gradle Daemon VM bellek tahsisi 1 gigabayttır - bu, dexInProcess'i desteklemek için yetersizdir, bu nedenle avantajdan yararlanmak için bunu en az 2 gigabayta ayarlamanız gerekir.
Dex in işlemi, Gradle ile paylaşılan tek bir VM içinde birden fazla DEX işleminin çalışmasına izin vererek çalışır; bu nedenle, etkinleştirilmeden önce fazladan bellek ayırmanız gerekir - bu bellek, Gradle ve birden çok DEX işlemi arasında paylaşılır.
Modül düzeyindeki build.gradle dosyanızda javaMaxHeapSize değerini varsayılan 1 gigabayt'ın ötesine yükselttiyseniz, Gradle Daemon'a atanan belleği buna uygun şekilde artırmanız gerekir.
Yeterli bellek atandığında, İşlemde Dex varsayılan olarak etkinleştirilir ve genel derleme performansını iyileştirir ve birden çok paralel sanal makine örneği başlatma yükünü ortadan kaldırır . Sonuç, Anında Çalıştırma, artımlı ve tam derlemeler dahil olmak üzere tüm derleme sürelerinde önemli bir iyileştirmedir.
Kaynak: https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
. Hala çalışmıyorsa, üzgünüm bunu nasıl düzelteceğimi bilmiyorum.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
gibi android/gradle.properties
çalıştı. Teşekkürler!! @KailashUniyal