waiting very tarda studio speed solucion slow running queda mucho for finish compilar android android-studio gradle-daemon

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



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/



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



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

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.