android - very - Para ejecutar dex en proceso, el demonio Gradle necesita un montón más grande. Actualmente tiene aproximadamente 910 MB
waiting for build to finish android studio solucion (13)
Recibo este error de Gradle cada vez que ejecuto mi aplicación. El error es:
Para ejecutar dex en proceso, el demonio Gradle necesita un montón más grande. Actualmente tiene aproximadamente 910 MB.
Para compilaciones más rápidas, aumente el tamaño de almacenamiento dinámico máximo para el demonio Gradle a más de 2048 MB.
Para hacerlo, establezca org.gradle.jvmargs = -Xmx2048M en el proyecto gradle.properties. Para obtener más información, consulte https://docs.gradle.org/current/userguide/build_environment.html
Aquí está mi archivo build.gradle (Módulo: aplicación):
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''
}
Y aquí está mi archivo build.gradle (Proyecto):
// 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
}
y aquí está mi archivo 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
¿Es un error o una advertencia?
A veces esto es solo una advertencia y puedo lograr construirlo con éxito:
: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):
(...)
Entonces, el problema que puede evitar una compilación exitosa puede ser otro ...
Agregue su Build.gradle
android {
dexOptions {
javaMaxHeapSize "4g"
}
}
Más información - Android Gradle: ¿Qué es javaMaxHeapSize "4g"?
Ejemplo, en
gradle.properties
de la raíz de su proyecto.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
En WINDOW''S abra el gradle.properties de ~ / Users / UserName / .gradle como se muestra a continuación: para obtener más información, ingrese la descripción del enlace aquí
y asegúrese de establecer su valor como mínimo en 4608M como se muestra a continuación para compilaciones más rápidas org.gradle.jvmargs = -Xmx4608M
Una vez que lo haga, podrá ver la diferencia entre el día y la noche en la velocidad de creación de su aplicación ...
Estoy bastante seguro de que
javaMaxHeapSize
y
org.gradle.jvmargs
son mutuamente excluyentes.
-
javaMaxHeapSize
es la antigua forma de hacerlo, con dex ejecutado fuera del proceso. Este será un argumento para el proceso dex. -
org.gradle.jvmargs
es la nueva forma de hacerlo, con dex dentro del proceso de gradle. Esta es la memoria máxima para todo el proceso (gradle, incluido dex)
Lo que dice la advertencia es que
org.gradle.jvmargs
debe ser> =
javaMaxHeapSize (what you used previously for dex)
+
512M (an estimation of what''s needed for gradle own needs)
.
Entonces, si desea usar dex en el proceso (que es más rápido), no debería preocuparse por
javaMaxHeapSize
.
Simplemente configure
org.gradle.jvmargs
en un valor correcto para su proyecto / máquina.
Modifique o cree un archivo llamado gradle.properties en el siguiente directorio.
Para Mac, /Users/USER_NAME/.gradle/gradle.properties
Para Linux, /home/USER_NAME/.gradle/gradle.properties
Para Windows, C: / Users / USER_NAME.gradle / gradle.properties
y aplique los cambios anteriores. Finalmente debería verse como,
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
Consulte este enlace https://tausiq.wordpress.com/2015/02/24/android-speed-up-gradle-build-process-in-android-studio/
Parece que hay un error:
https://code.google.com/p/android/issues/detail?id=208214
Usando
com.android.tools.build:gradle:2.1.2
configuré
org.gradle.jvmargs=-Xmx3415M
con
dexOptions.javaMaxHeapSize "2g"
y el mensaje de error desapareció.
Prueba esto
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
Puede seguir adelante y cambiar
build.gradle
así (como sugirió Veeresh Charantimath):
android {
dexOptions {
javaMaxHeapSize "2g"
}
}
Y luego puede que tenga que perder el tiempo con cosas MultiDex (lo necesitará para grandes proyectos de Android). Pero su problema puede ser más simple. Existe la posibilidad de que compile e incluya en su proyecto algunas bibliotecas no necesarias. Enfrenté este problema en mi pequeño proyecto. Esto es lo que hice para solucionarlo:
build.gradle
esto de
build.gradle
:
dependencies {
compile fileTree(dir: ''libs'', include: [''*.jar''])
}
Y eliminé manualmente mi carpeta de compilación de la raíz de la aplicación. Problema resuelto.
Sé que es demasiado tarde para la respuesta, pero espero que sea útil para alguien
He intentado muchas cosas y buscar mucho, pero nada funciona para mí, incluye el siguiente y build.gradle (aplicación) tampoco funciona en mi caso
android {
dexOptions {
javaMaxHeapSize "4g"
}
}
También puede intentar agregar en su gradle.properties :
org.gradle.jvmargs=-Xmx2048m
En mi caso, el problema es la utilización de la CPU, hay muchos procesos en ejecución mientras construyo apk, solo elimino algunos procesos como genymotion, skype, safari, etc. y luego invalidar cachés / reiniciar funciona para mí.
Simplemente déjelo en su gradle.properties:
org.gradle.jvmargs=-Xmx2048m
Puedes mirar ese artículo como referencia.
Actualización del 25 de junio de 2017
En Google IO 2017 hubo algunas actualizaciones sobre este tema. Ya no se recomienda establecer el indicador en las opciones dex, por lo que si tiene algo como lo siguiente, puede eliminarlo.
dexOptions {
javaMaxHeapSize "2g"
}
Respuesta original:
Android Studio 2.1 habilita Dex In Process, que comparte la VM con Gradle para mejorar los tiempos de compilación. Debido a esto, es necesario aumentar el tamaño del demonio Gradle para incorporar esos procesos Dex.
Al menos son necesarios 2 gigas de memoria, pero puedes probar con tres si puedes permitírtelo.
gradle.properties.
org.gradle.jvmargs=-Xmx3072m
De forma predeterminada, el tamaño máximo de almacenamiento dinámico de Java es un concierto, pero en caso de que lo haya modificado en el archivo build.gradle ...
build.gradle (aplicación)
dexOptions {
javaMaxHeapSize "2g"
}
... debe cambiar el tamaño del tamaño del demonio Gradle en consecuencia (debe ser más grande para adaptarse al montón).
-
Recursos
Notas:
- Tenga en cuenta que los números anteriores varían de una máquina a otra.
- Verifique primero gradle.propertises en el directorio raíz de su proyecto.
Si es ausencia, cree un archivo como este, luego agregue org.gradle.jvmargs = -Xmx1536m
de lo contrario, si ya está allí, aumente el tamaño.
Me he enfrentado al mismo problema, donde lo he resuelto de esta manera.