Я щойно оновив Android Studio до версії 3.5 Beta 1 і отримую
Демон закінчується, оскільки простір купи JVM вичерпано
повідомлення під час запуску збірки. Крім того, побудова займає більше часу для завершення. Хтось має якусь ідею щодо цього?
Я щойно оновив Android Studio до версії 3.5 Beta 1 і отримую
Демон закінчується, оскільки простір купи JVM вичерпано
повідомлення під час запуску збірки. Крім того, побудова займає більше часу для завершення. Хтось має якусь ідею щодо цього?
Відповіді:
Я зміг вирішити це для свого проекту React Native , налаштувавши наступне:
// gradle.properties
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
і
// app/build.gradle
android {
dexOptions {
javaMaxHeapSize "3g"
}
}
Це можна виправити, збільшивши налаштований максимальний розмір купи для проекту.
Через IDE:
Додайте наведені нижче рядки у файл gradle.properties. Нижчий обсяг пам'яті можна налаштувати на основі доступності оперативної пам'яті
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m
Через графічний інтерфейс:
В налаштуваннях, пошук «Налаштування пам'яті» і збільшити IDE максимального розміру купи і Daemon максимального розміру купи відповідно з наявністю системної пам'яті.
Рішення полягає в збільшенні пам’яті для збірки Android.
Коли ви додаєте більше модулів до свого додатка, на систему збірки Android виникає неймовірний попит, і налаштування пам'яті за замовчуванням не працюватимуть. Щоб уникнути OutOfMemoryErrors під час збірок Android, слід прокоментувати альтернативні налаштування пам'яті gradle, наявні в /android/gradle.properties :
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Ви можете знайти gradle.properties всередині папки android .
PS
Що ми робимо для цього і чому це допомагає?
Дозвольте мені пояснити деяку базову термінологію для розуміння всього.
Демон : - Демон - це комп’ютерна програма, яка працює як фоновий процес, а не під прямим контролем інтерактивного користувача.
Android Studio 2.1 пропонує нову функцію: Dex In Process , яка може різко збільшити швидкість повної чистої збірки, а також покращити продуктивність миттєвого запуску.
Щоб скористатися перевагами Dex In Process , вам потрібно змінити файл gradle.properties і збільшити обсяг пам'яті, виділеної Gradle Daemon VM, на 1 Гб до мінімум 2 Гб, використовуючи властивість org.gradle.jvmargs :
Визначає аргументи JVM, що використовуються для процесу демона. Цей параметр особливо корисний для налаштування пам’яті.
org.gradle.jvmargs=-Xmx2048m
Значення за замовчуванням:
-Xmx10248m -XX:MaxPermSize=256m
Виділення пам'яті Gradle Daemon VM за замовчуванням становить 1 гігабайт - цього недостатньо для підтримки dexInProcess, тому, щоб скористатися перевагами, вам потрібно встановити для нього принаймні 2 гігабайти.
Dex в процесі працює, дозволяючи декільком процесам DEX запускатися в одній віртуальній машині, яка також надається спільно з Gradle, саме тому вам потрібно виділити додаткову пам'ять, перш ніж її можна буде ввімкнути - ця пам'ять буде спільно використовуватися між Gradle та кількома процесами DEX.
Якщо ви збільшили javaMaxHeapSize у своєму файлі build.gradle на рівні модуля понад 1 гігабайт за замовчуванням, вам потрібно буде відповідно збільшити пам'ять, призначену демону Gradle.
Коли достатньо пам'яті, призначеної Dex у процесі, увімкнено за замовчуванням, покращуючи загальну продуктивність збірки та видаляючи накладні витрати на запуск декількох паралельних екземплярів ВМ . Результатом є значне поліпшення всіх часів збірки, включаючи миттєвий запуск, поступові та повні збірки.
Джерело: 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
у gradle.properties. Якщо все ще не працює, вибачте, я не уявляю, як це виправити.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
у android/gradle.properties
спрацьованому lika шарм. Дякую!! @KailashUniyal