Saya baru saja memperbarui Android Studio ke 3.5 Beta 1 dan saya mendapatkan
Kedaluwarsa Daemon karena ruang heap JVM habis
pesan saat build sedang berjalan. Selain itu, pembangunan membutuhkan lebih banyak waktu untuk diselesaikan. Apakah ada yang tahu tentang ini?
android-studio
gradle
jvm
android-studio-3.5
Rishabh Sagar
sumber
sumber
Jawaban:
Saya dapat menyelesaikan ini untuk proyek React Native saya dengan mengkonfigurasi yang berikut:
dan
sumber
Ini dapat diperbaiki dengan meningkatkan ukuran heap maks yang dikonfigurasi untuk proyek tersebut.
Melalui IDE:
Tambahkan baris di bawah ini ke dalam file gradle.properties. Ukuran memori di bawah ini dapat dikonfigurasi berdasarkan ketersediaan RAM
Melalui GUI:
Di Pengaturan, cari 'Pengaturan Memori' dan tingkatkan ukuran heap maks IDE dan ukuran heap maks Daemon sesuai ketersediaan RAM sistem.
sumber
Saat Anda menambahkan lebih banyak modul ke aplikasi Anda, ada permintaan luar biasa yang ditempatkan pada sistem build Android, dan setelan memori default tidak akan berfungsi. Untuk menghindari OutOfMemoryErrors selama pembuatan Android, Anda harus menghapus komentar pada setelan memori gradle alternatif yang ada di /android/gradle.properties :
Anda dapat menemukan gradle.properties di dalam folder android .
PS
Izinkan saya menjelaskan beberapa terminologi dasar untuk memahami semuanya.
Daemon : - Daemon adalah program komputer yang berjalan sebagai proses latar belakang, bukan di bawah kendali langsung pengguna interaktif.
Android Studio 2.1 mengaktifkan fitur baru: Dex In Process , yang secara dramatis dapat meningkatkan kecepatan build bersih penuh serta meningkatkan performa Instant Run.
Untuk memanfaatkan Dex In Process , Anda perlu mengubah file gradle.properties dan meningkatkan jumlah memori yang dialokasikan ke VM Daemon Gradle sebesar 1 Gb, minimal menjadi 2 Gb, menggunakan properti org.gradle.jvmargs :
Menentukan argumen JVM yang digunakan untuk proses daemon. Pengaturan ini sangat berguna untuk mengubah pengaturan memori.
Nilai default:
Alokasi memori VM Gradle Daemon default adalah 1 gigabyte - yang tidak cukup untuk mendukung dexInProcess, jadi untuk memanfaatkannya, Anda harus menyetelnya ke setidaknya 2 gigabyte.
Dex dalam proses bekerja dengan memungkinkan beberapa proses DEX berjalan dalam satu VM yang juga dibagikan dengan Gradle, itulah sebabnya Anda perlu mengalokasikan memori tambahan sebelum dapat diaktifkan - memori tersebut akan dibagikan antara Gradle dan beberapa proses DEX.
Jika Anda telah meningkatkan javaMaxHeapSize dalam file build.gradle level modul Anda melebihi default 1 gigabyte, Anda harus meningkatkan memori yang ditetapkan ke Gradle Daemon terkait.
Jika ada cukup memori yang ditetapkan, Dex dalam Proses akan diaktifkan secara default, meningkatkan kinerja build secara keseluruhan dan menghilangkan overhead untuk memulai beberapa instance VM paralel . Hasilnya adalah peningkatan yang signifikan di semua waktu build, termasuk Instant Run, incremental, dan build lengkap.
Sumber: https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
https://rnfirebase.io/#increasing-android-build-memory
sumber
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
di gradle.properties. Jika masih tidak berfungsi maka maaf saya tidak tahu bagaimana cara memperbaikinya.org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
inandroid/gradle.properties
bekerja lika pesona. Terima kasih!! @KailaNyal