Android studio 2.0 Vista previa 8 con gradle plugin 2.0.0-alhpa8, advertencia de memoria a pesar de tamaño de montón a 4Gb

Acabo de actualizar a Android Studio versión 2.0 Vista previa 8 y gradle plugin 2.0.0-alpha8. Me di cuenta de que ahora hay una advertencia en caso de que el espacio de montón no es lo suficientemente grande para dexing.

Como dicen en la página adecuada ( http://tools.android.com/recent )

En 2.0.0-alpha8 hemos añadido algunos diagnósticos automáticos para esto: si el proceso de construcción es demasiado pequeño, cambiamos de nuevo a dexing de memoria insuficiente y emitemos una advertencia de compilación que explica cómo aumentar el tamaño del daemon de Gradle. (También estamos trabajando en algunas mejoras relacionadas adicionales para la siguiente generación después de alpha8.)

Cuando fui a construir mi proyecto recibí el siguiente error:

Para ejecutar dex en proceso, el demonio Gradle necesita un montón más grande. Actualmente tiene 3641 MB. Para las compilaciones más rápidas, aumente el tamaño de montón máximo para el daemon Gradle a más de 4g como se especifica en dexOptions.javaMaxHeapSize. Para ello, establezca org.gradle.jvmargs = -Xmx4g como se especifica en dexOptions.javaMaxHeapSize en el proyecto gradle.properties. Para obtener más información, consulte https://docs.gradle.org/current/userguide/build_environment.html

En realidad, tengo muchos de estos en una fila. Lo que me sorprende porque eso es lo que veo en mi archivo gradle.properties (en mi dir de proyecto)

ANDROID_BUILD_TARGET_SDK_VERSION=23 ANDROID_BUILD_TOOLS_VERSION=23 ANDROID_BUILD_SDK_VERSION=23 ANDROID_BUILD_MIN_SDK_VERSION=16 org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 

También, en el build.gradle de mi módulo principal, puse

 android { dexOptions { incremental true javaMaxHeapSize "4g" } } 

Así que no entiendo donde el constructor / dexer / compilador está consiguiendo ese valor 3641MB.

Las compilaciones son extremadamente lentas

I Desactivado la ejecución instantánea y ahora las cosas son más rápidas. 48-50 segundos para una compilación. Sigo recibiendo el mismo error, pero sólo una vez y no muchas veces en una fila.

Estoy en Linux, mi ulimit -a es el siguiente:

 core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31483 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 31483 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited 

También, este es mi archivo de studio.vmoptions: https://gist.github.com/MarKco/1ae7918daf867a378a2f Supongo que es inédito. Podría tener una costumbre, pero no sé dónde podría estar.

One Solution collect form web for “Android studio 2.0 Vista previa 8 con gradle plugin 2.0.0-alhpa8, advertencia de memoria a pesar de tamaño de montón a 4Gb”

Lo solucioné, o eso parece. El último cambio que había hecho antes de publicar la pregunta era el siguiente:

tuve

 ANDROID_BUILD_TARGET_SDK_VERSION=22 ANDROID_BUILD_TOOLS_VERSION=22 ANDROID_BUILD_SDK_VERSION=22 ANDROID_BUILD_MIN_SDK_VERSION=16 org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 

Y lo cambié a

 ANDROID_BUILD_TARGET_SDK_VERSION=23 ANDROID_BUILD_TOOLS_VERSION=23 ANDROID_BUILD_SDK_VERSION=23 ANDROID_BUILD_MIN_SDK_VERSION=16 org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 

No sé por qué no se cambió automáticamente, ya que he estado utilizando 23 como versión de destino desde hace mucho tiempo. De todos modos, después de cambiar de 22 a 23 no tenía buenas construcciones todavía, pero que parecía ser debido a una sincronización gradle todavía se ejecuta en segundo plano. Maté todos los proyectos de gradle, mantuve la versión 23 en lugar de 22, deshabilitó la ejecución instantánea y realizó una nueva sincronización. Al principio seguí viendo el "Para ejecutar dex en proceso, el demonio Gradle necesita un montón más grande." Error, sólo una vez y no se repite como sucedió antes. Pero construir después de construir vi tiempos de construcción cada vez más bajos, hasta que tengo una construcción de 10 segundos. Supongo que está resuelto. Espero, al menos.

PS Al final cambié el MaxPermSize de acuerdo a lo que Henry dijo, ahora mi configuración es

 ANDROID_BUILD_TARGET_SDK_VERSION=23 ANDROID_BUILD_TOOLS_VERSION=23 ANDROID_BUILD_SDK_VERSION=23 ANDROID_BUILD_MIN_SDK_VERSION=16 org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 
  • Añadir biblioteca externa en Android studio 0.3.6
  • Error de sincronización de Gradle: No se puede cargar la biblioteca windows-amd64 \ native-platform.dll
  • Gradle - recopilación de módulos selectivos (reutilización jar de lo contrario)
  • BuildConfigField VS campo de clase? Recurso resValue VS
  • Valor predeterminado para Gradle buildConfigField booleano utilizado en todos los sabores
  • Android Studio crear una variante de construcción / tipo excluyendo jniLibs?
  • Android con Gradle (Java terminado con valor de salida no nulo 2)
  • Gradle y varios proyectos con Roboguice dependencia
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.