Para ejecutar Dex en proceso, el daemon de Gradle necesita un montón más grande. Actualmente tiene aproximadamente 910 MB

Recibo este error de Gradle cada vez que ejecuto mi aplicación. El error es:

Para ejecutar Dex en proceso, el daemon de Gradle necesita un montón más grande. Actualmente tiene aproximadamente 910 MB.

Para comstackciones más rápidas, aumente el tamaño máximo de almacenamiento dynamic para el daemon de Gradle a más de 2048 MB.

Para hacer esto, 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 (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' } 

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 (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 

Agregue su Build.gradle

 android { dexOptions { javaMaxHeapSize "4g" } } 

Más información – Android Gradle: ¿Qué es javaMaxHeapSize “4g”?

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 dexOptions, por lo que si tiene algo como el siguiente, puede eliminarlo.

 dexOptions { javaMaxHeapSize "2g" } 
  • Fuente: acelerando tus Android Gradle Builds

Respuesta original:

Android Studio 2.1 habilita Dex In Process, que comparte la máquina virtual con Gradle para mejorar los tiempos de construcción. Debido a esto, es necesario boost el tamaño del daemon Gradle para incorporar esos procesos Dex.

Al menos es necesario 2 gigas de memoria, pero puedes probar con tres si puedes pagarlo.

gradle.properties.

 org.gradle.jvmargs=-Xmx3072m 

De forma predeterminada, el tamaño máximo de almacenamiento dynamic de Java es un concierto, pero en caso de que lo hayas modificado en el archivo build.gradle …

build.gradle (Aplicación)

 dexOptions { javaMaxHeapSize "2g" } 

… tiene que cambiar el tamaño del tamaño del daemon de Gradle en consecuencia (tiene que ser más grande para ajustarse al montón).

  • Recursos

    1. Publicación oficial del blog de Reto Meier
    2. Video oficial en desarrolladores de Android
    3. Documentos de DexOptions.

Notas:

  • Tenga en cuenta que los números anteriores varían de una máquina a otra.

Simplemente déjalo en tus gradle.properties:

 org.gradle.jvmargs=-Xmx2048m 

Puedes mirar ese artículo como referencia.

Sé que es demasiado tarde para la respuesta, pero espero que sea útil para alguien

He intentado hacer muchas cosas y buscar mucho pero nada funciona para mí, incluyen follow y gradle.properties tampoco funcionan en mi caso

 android { dexOptions { javaMaxHeapSize "4g" } } 

También puedes probar Añade tus gradle.properties:

 org.gradle.jvmargs=-Xmx2048m 

En mi caso, el problema es la utilización de la CPU, hay mucho proceso ejecutándose mientras construyo la aplicación, simplemente elimino algunos procesos como genymotion, skype, safari, etc. y luego invalido las cachés / reinicio, esto funciona para mí.

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 aplica los cambios anteriores. Finalmente debería verse así,

 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 

Por favor, consulte este enlace https://tausiq.wordpress.com/2015/02/24/android-speed-up-gradle-build-process-in-android-studio/

Puede continuar y modificar build.gradle esa manera (como sugirió Veeresh Charantimath):

 android { dexOptions { javaMaxHeapSize "2g" } } 

Y entonces es posible que tenga que perder el tiempo con cosas de MultiDex (lo necesitará para grandes proyectos de Android). Pero tu problema puede ser más simple. Existe la posibilidad de que compile e incluya en su proyecto algunas bibliotecas innecesarias. Enfrenté este problema en mi pequeño proyecto. Esto es lo que hice para arreglarlo:

build.gradle esto de build.gradle :

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) } 

Y eliminé manualmente mi carpeta de comstackción desde la raíz de la aplicación. Problema resuelto.

¿Es un error o una advertencia?

Algunas veces esto es solo una advertencia y puedo lograr construirlo exitosamente:

 :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 construcción exitosa puede ser otro …

Estoy bastante seguro de que javaMaxHeapSize y org.gradle.jvmargs son mutuamente exclusivos.

  • javaMaxHeapSize es la forma antigua de hacerlo, con dex ejecutado fuera del proceso. Esto será un argumento para el proceso dex.
  • org.gradle.jvmargs es la nueva forma de hacerlo, con dex dentro del proceso 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 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.

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ó.

En WINDOW’S, abra gradle.properties desde ~ \ Users \ UserName \ .gradle como se muestra a continuación: para obtener más información, ingrese la descripción del enlace aquí

enter image description here

y asegúrese de establecer su valor al mínimo en 4608M como se muestra a continuación para comstackciones más rápidas org.gradle.jvmargs = -Xmx4608M

Una vez que lo hagas, podrás ver la diferencia entre el día y la noche en la creación rápida de tu aplicación …

  • Verifique en first gradle.propertises en el directorio raíz de su proyecto.

Si es ausencia, crea un archivo como este, luego agrega org.gradle.jvmargs = -Xmx1536m

de lo contrario, si ya está allí, aumente el tamaño.

He enfrentado el mismo problema, donde lo he resuelto de esta manera.

Ejemplo, en gradle.properties de su proyecto raíz.

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m

Prueba esto

 defaultConfig { ... // Enabling multidex support. multiDexEnabled true }