Android Studio 2.1 ejecución instantánea java.lang.OutOfMemoryError: Límite de sobrecarga de GC superado

He actualizado a Android Studio 2.1 y tengo este error mientras estoy tratando de construir y ejecutar mi gran proyecto corporativo:

La ejecución falló para la tarea ': app: transformClassesWithDexForMyAppDebug'. Com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Límite de sobrecarga de GC superado

He buscado a través del foro y desactivado ejecución instantánea, también escribir a mi build.gradle:

dexOptions { incremental true javaMaxHeapSize "6g" } ... dependencies{ compile 'com.android.support:multidex:' } 

Pero no resolvió mi problema. Tengo multidex permitido en mi gradle, porque consigo el error sin él:

Com.android.dex.DexIndexOverflowException: ID del método no en [0, 0xffff]: 65536

Por lo que esta era la solución para él, y funcionó antes con las versiones anteriores de Android Studio (también trabajando para los demás en la empresa, que están usando Android Studio 1.4-2.0), pero no para mí desde que actualizé mi Android Studio.

¿Alguien tiene una idea de lo que puede causar el problema?

Lo que también es interesante que si sólo hago el proyecto no recibo el error, sólo si intento ejecutarlo. Cualquier idea es apreciada!

EDIT 1:

Lo que también es interesante, que si reinicio mi estudio de Android, que la primera ejecución es exitosa, pero la segunda no lo es.

EDIT 2:

Si establezco el tamaño de montón a más grande (como 8-10g) que la aplicación ni siquiera se compila en la primera ejecución.

EDIT 3:

Parece que el problema es con la ejecución instantánea , si forzar el estudio de Android para no usarlo (como desplegar a dos dispositivos a la vez o cambiar gradle.properties como en la respuesta) el error desaparece.

Añada esto al archivo gradle.properties .

 # The Gradle daemon aims to improve the startup and execution time of Gradle. # When set to true the Gradle daemon is to run the build. org.gradle.daemon=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 # 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 # Enables new incubating mode that makes Gradle selective when configuring projects. # Only relevant projects are configured which results in faster builds for large multi-projects. # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand org.gradle.configureondemand=true 

Encontrado aquí

Y en mi build.gradle :

 .... dexOptions { incremental false javaMaxHeapSize "2048M" preDexLibraries = false }//end dexOptions .... 

Paso1: Cambiar build.grade

 defaultConfig { ... // Enabling multidex support. multiDexEnabled true } dependencies { ... compile 'com.android.support:multidex:1.0.0' } 

Paso 2: Configuración en la clase Aplicación

 public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); MultiDex.install(this); } } 

Paso 3: Cambiar grade.properties

 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 

¡Funcionará!. Gracias.

 defaultConfig { multiDexEnabled =true } 

Agregue esto al archivo build.gradle de la aplicación

  • Instant Run ejecutó una compilación e instalación completas ya que la instalación en el dispositivo no coincide con la compilación local en el disco
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.