Ответ 1
Добавьте в свой Build.gradle
android {
dexOptions {
javaMaxHeapSize "4g"
}
}
Дополнительная информация - Android Gradle: что такое javaMaxHeapSize < 4g "?
Я получаю эту ошибку Gradle при каждом запуске моего приложения. Ошибка:
Для запуска dex в процессе, для демона Gradle требуется большая куча. В настоящее время он имеет приблизительно 910 МБ.
Для более быстрой сборки увеличьте максимальный размер кучи для демона Gradle до более чем 2048 МБ.
Для этого установите 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 (e.g. 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
Добавьте в свой Build.gradle
android {
dexOptions {
javaMaxHeapSize "4g"
}
}
Дополнительная информация - Android Gradle: что такое javaMaxHeapSize < 4g "?
Обновление с 25 июня 2017 года
В Google IO 2017 появились некоторые обновления по этой теме. Не рекомендуется больше устанавливать флаг в dexOptions, поэтому, если у вас есть что-то вроде следующего, вы можете его удалить.
dexOptions {
javaMaxHeapSize "2g"
}
Оригинальный ответ:
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"
}
... вы должны соответственно изменить размер демона Gradle (должен быть больше, чтобы соответствовать куче).
Ресурсы
Примечания:
Просто оставьте это на gradle.properties:
org.gradle.jvmargs=-Xmx2048m
Вы можете посмотреть эту статью как ссылку.
Я знаю это слишком поздно для ответа, но надеюсь, что это будет полезно для кого-то
Я перепробовал много вещей и много поиска, но у меня ничего не работает, включая следующее, и build.gradle (приложение) также не работает в моем случае
android {
dexOptions {
javaMaxHeapSize "4g"
}
}
Также вы можете попробовать добавить на свой gradle.properties:
org.gradle.jvmargs=-Xmx2048m
В моем случае проблема заключается в использовании процессора, при этом я запускаю множество процессов, а я просто убиваю некоторые процессы, такие как 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):
(...)
Таким образом, проблема, которая может помешать успешной сборке, может быть другой...
В WINDOW откройте gradle.properties из ~\Users\ Имя_пользователя \. gradle, как показано ниже: для получения дополнительной информации введите ссылку здесь
и убедитесь, что его значение минимально до 4608M, как показано ниже, для более быстрой сборки org.gradle.jvmargs = -Xmx4608M
Как только вы это сделаете, вы сможете увидеть разницу в день и ночь в скорости создания вашего приложения...
Я уверен, что 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 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"
, и сообщение об ошибке исчезло.
Если это отсутствие, создайте файл так, как показано на рисунке, а затем добавьте org.gradle.jvmargs = -Xmx1536m
В противном случае, если вы уже там, пожалуйста, увеличьте размер.
У меня возникла такая же проблема, когда я решил таким образом.
Пример, в gradle.properties
вашего корня проекта.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
Попробуйте это
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}