Je me débarrasse très souvent du problème de mémoire après avoir mis à jour buildToolsVersion '22.0.1'
en buildToolsVersion '23.0.1'
. Je suis vraiment confus et je ne sais pas comment résoudre ce problème, car cette erreur ne s'affiche qu'avec buildTools
version 23.0.1
. Alors que ça fonctionne bien quand je le change en 22.0.1
. Aidez-moi, s'il vous plaît. Je poste l'erreur que je reçois comme suit,
Uncaught translation error: Java.util.concurrent.ExecutionException: Java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: Java.util.concurrent.ExecutionException: Java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: Java.util.concurrent.ExecutionException: Java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: Java.util.concurrent.ExecutionException: Java.lang.OutOfMemoryError: Java heap space
Uncaught translation error: Java.util.concurrent.ExecutionException: Java.lang.OutOfMemoryError: GC overhead limit exceeded
Uncaught translation error: Java.util.concurrent.ExecutionException: Java.lang.OutOfMemoryError: Java heap space
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.Android.build.transform.api.TransformException: com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_25\bin\Java.exe'' finished with non-zero exit value 1
build.gradle
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion '23.0.1'
defaultConfig {
applicationId "com.example.app"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
// Enabling multidex support.
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.Android.support:appcompat-v7:23.0.1'
compile 'com.Android.support:support-v4:23.0.1'
compile 'com.Android.support:design:23.0.0'
compile 'com.Android.support:cardview-v7:23.0.1'
compile 'com.Android.support:recyclerview-v7:23.0.1'
compile 'com.Android.support:palette-v7:23.0.1'
compile 'com.google.Android.gms:play-services:7.5.0'
}
Merci d'avance.
Ajoutez ceci à votre fermeture Android dans votre fichier build.gradle:
dexOptions {
javaMaxHeapSize "4g"
}
La réponse acceptée fonctionne, mais j'étais un peu confus quant à l'endroit où placer la dexOptions
dans mon build.gradle
. Nous le mettons effectivement dans la section Android.
Voici un extrait de code:
Android {
dexOptions {
javaMaxHeapSize "4g"
}
......
}
En fait, pour moi, une solution plus complexe, combinant tout ce qui est en haut, a été utilisée, ainsi que l’activation de multidex dans le fichier build.gradle du module.
A. Ajoutez cette ligne dans la section defaultConfig pour activer multiDex
// Enabling multidex support.
multiDexEnabled true
B. Puis définissez les dexOptions , comme ceci:
dexOptions {
incremental true
javaMaxHeapSize "4G"
}
C. Après le passage à multidex et la définition du segment de mémoire sur 4g, une erreur de débordement peut survenir et me conduire à supprimer le commentaire et à modifier la ligne jvmargs du fichier gradle.properties du projet, comme suit:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Les valeurs peuvent différer selon votre machine. Vous pouvez également utiliser des valeurs doubles.
En plus de la procédure ci-dessus, il existe une autre option pour définir les arguments jvm.
org.gradle.jvmargs="-Xms2g -Xmx4g" in gradle.properties .
Le réglage sert à modifier la mémoire. Xms: mémoire de démarrage Xmx: mémoire maximale
J'ai résolu ce problème
Je pense que ce sera utile pour vous aussi ... si cela peut vous être utile.
dexOptions {
javaMaxHeapSize "4g"
}
Je faisais face au même problème en ajoutant ceci dans le fichier build.gradle (au niveau du module) qui a résolu mon problème.