Для запуска dex в процессе, демону Gradle нужна большая куча. В настоящее время он имеет приблизительно 910 МБ
Я получаю эту ошибку Gradle каждый раз, когда запускаю приложение. Ошибка:
Для запуска dex в процессе, демону Gradle нужна большая куча. В настоящее время он имеет приблизительно 910 МБ.
Для более быстрой сборки увеличьте максимальный размер кучи для демона Gradle более чем на 2048 МБ.
- Android: местоположение Google Maps с низким уровнем использования батареи
- Переопределение кнопки «Главная» - как мне избавиться от выбора?
- Передача данных между fragmentом и его контейнерной активностью
- Проверьте, присутствует ли SDCard, логическое значение всегда верно
- Android BOOT_COMPLETED не получен, когда приложение закрыто
Для этого установите org.gradle.jvmargs = -Xmx2048M в проекте gradle.properties. Для получения дополнительной информации см. Https://docs.gradle.org/current/userguide/build_environment.html
Вот мой файл build.gradle (Module: app):
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "mobileapp.tech2dsk" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:design:23.3.0' }
И вот мой файл build.gradle (Project):
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
и вот мой файл gradle.properties:
# Project-wide Gradle settings. # IDE (eg Android Studio) users: # Gradle settings configured through the IDE *will override* # any settings specified in this file. # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true
- Изменение источника ImageView
- onMeasure пользовательский вид пояснения
- как проверить Wi-Fi или 3g-сеть доступна на Android-устройстве
- Android: подскажите пользователю сохранить изменения при нажатии кнопки «Назад»
- Добавьте изображение с URL в пользовательские InfoWindow google maps v2
- Не удалось решить: com.android.support:appcompat-v7:27.+ (ошибка зависимости)
- Firebase Android: как читать из разных ссылок последовательно
- Как отправить данные из диалогового windows в fragment?
Добавьте в свой Build.gradle
android { dexOptions { javaMaxHeapSize "4g" } }
Дополнительная информация – Android Gradle: что такое javaMaxHeapSize «4g»?
Обновление от 25 июня 2017 года
В Google IO 2017 были некоторые обновления по этой теме. Не рекомендуется устанавливать флаг в dexOptions, поэтому, если у вас есть что-то вроде следующего, вы можете его удалить.
dexOptions { javaMaxHeapSize "2g" }
- Источник: ускорение сборки Android Gradle
Оригинальный ответ:
Android Studio 2.1 позволяет Dex In Process, который разделяет VM с Gradle, улучшает время сборки. В связи с этим необходимо увеличить размер демона Gradle, чтобы включить эти процессы Dex.
По крайней мере, это необходимо 2 гигабайта памяти, но вы можете попробовать с тремя, если можете себе это позволить.
gradle.properties.
org.gradle.jvmargs=-Xmx3072m
По умолчанию размер кучи Java max – один концерт, но если вы изменили его в файле build.gradle …
build.gradle (приложение)
dexOptions { javaMaxHeapSize "2g" }
… вы должны соответственно resize демона Gradle (он должен быть больше, чтобы соответствовать куче).
-
Ресурсы
- Официальное сообщение в блоге от Reto Meier
- Официальное видео в Android-разработчиках
- Документы DexOptions.
Заметки:
- Пожалуйста, поймите, что выше числа варьируются от машины к машине.
Просто оставьте это на своем уровне gradle.properties:
org.gradle.jvmargs=-Xmx2048m
Вы можете посмотреть эту статью в качестве справочной.
Я знаю, что слишком поздно для ответа, но надеюсь, что это поможет кому-то
Я пробовал много вещей и поиска, но ничего не работает для меня, include следующие и gradle.properties также не работает в моем случае
android { dexOptions { javaMaxHeapSize "4g" } }
Также вы можете попробовать добавить на свой уровень gradle.properties:
org.gradle.jvmargs=-Xmx2048m
В моем случае проблема заключается в использовании процессора, есть много процессов, в то время как я строю apk, я просто убиваю некоторые процессы, такие как genymotion, skype, safari и т. Д., И чем недействительные кэши / перезагрузка, это работает для меня.
Измените или создайте файл с именем gradle.properties в следующем каталоге.
Для Mac, /Users/USER_NAME/.gradle/gradle.properties
Для Linux /home/USER_NAME/.gradle/gradle.properties
Для Windows, C: \ Users \ USER_NAME.gradle \ gradle.properties
и примените вышеуказанные изменения. Наконец, это должно выглядеть так,
org.gradle.daemon=true # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=true org.gradle.configureondemand=true # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. # Default value: -Xmx10248m -XX:MaxPermSize=256m org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
См. Эту ссылку https://tausiq.wordpress.com/2015/02/24/android-speed-up-gradle-build-process-in-android-studio/
Вы можете пойти и изменить build.gradle
как это (например, предлагаемый Veeresh Charantimath):
android { dexOptions { javaMaxHeapSize "2g" } }
И тогда вам, возможно, придется возиться с материалами MultiDex (вам это понадобится для больших проектов Android). Но ваша проблема может быть проще. Есть вероятность, что вы скомпилируете и включите в свой проект некоторые не нужные библиотеки. Я столкнулся с этим вопросом в своем крошечном проекте. Вот что я сделал, чтобы исправить это:
Я удалил это из build.gradle
:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
И я вручную удалил свою папку для сборки из корня приложения. Задача решена.
Это ошибка или предупреждение?
Иногда это только предупреждение, и я могу успешно его построить:
:transformClassesWithDexForDebug To run dex in process, the Gradle daemon needs a larger heap. It currently has approximately 910 MB. For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB. To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties. For more information see https://docs.gradle.org/current/userguide/build_environment.html :mergeDebugJniLibFolders UP-TO-DATE :transformNative_libsWithMergeJniLibsForDebug :processDebugJavaRes UP-TO-DATE :transformResourcesWithMergeJavaResForDebug :validateDebugSigning :packageDebug :zipalignDebug :assembleDebug :cdvBuildDebug BUILD SUCCESSFUL Total time: 3 mins 44.991 secs Built the following apk(s): (...)
Таким образом, проблема, которая может помешать успешной сборке, может быть другой …
Я уверен, что javaMaxHeapSize
и org.gradle.jvmargs
являются взаимоисключающими.
-
javaMaxHeapSize
– это старый способ сделать это, при этом dex запускается за пределами процесса. Это будет аргументом для процесса dex. -
org.gradle.jvmargs
– это новый способ сделать это, с dex внутри процесса gradleации. Это максимальная память для всего процесса (gradle, включая dex)
В предупреждении говорится, что org.gradle.jvmargs
должен быть> = javaMaxHeapSize (what you used previously for dex)
+ 512M (an estimation of what's needed for gradle own needs)
.
Поэтому, если вы хотите использовать dex в процессе (что быстрее), вам не стоит заботиться о javaMaxHeapSize
. Просто установите org.gradle.jvmargs
на правильное значение для вашего проекта / машины.
Кажется, есть ошибка:
https://code.google.com/p/android/issues/detail?id=208214
Использование com.android.tools.build:gradle:2.1.2
Я установил org.gradle.jvmargs=-Xmx3415M
с помощью dexOptions.javaMaxHeapSize "2g"
и сообщение об ошибке dexOptions.javaMaxHeapSize "2g"
.
В WINDOW’S откройте gradle.properties из ~ \ Users \ UserName \ .gradle, как показано ниже: для получения дополнительной информации введите описание ссылки здесь
и убедитесь, что его значение минимально до 4608M, как показано ниже, для более быстрой сборки org.gradle.jvmargs = -Xmx4608M
Как только вы это сделаете, вы увидите разницу в дневных и ночных скоростях при создании вашего приложения …
- Сначала проверьте gradle.propertises в корневом каталоге проекта.
Если это отсутствие, создайте файл так, как показано на рисунке, а затем добавьте org.gradle.jvmargs = -Xmx1536m
в противном случае, если он уже есть, увеличьте размер.
Я столкнулся с такой же проблемой, где и решил.
Например, в gradle.properties
вашего корня проекта.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
Попробуй это
defaultConfig { ... // Enabling multidex support. multiDexEnabled true }