Je reçois cette erreur Gradle chaque fois que je lance mon application. L'erreur est:
Pour exécuter dex en cours, le démon Gradle a besoin d'un segment de mémoire plus grand. Il a actuellement environ 910 MB.
Pour des générations plus rapides, augmentez la taille de segment maximale du démon Gradle à plus de 2048 Mo.
Pour ce faire, définissez org.gradle.jvmargs = -Xmx2048M dans le projet gradle.properties. Pour plus d'informations, voir https://docs.gradle.org/current/userguide/build_environment.html
Voici mon fichier 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'
}
Et voici mon fichier build.gradle (Projet):
// 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
}
et voici mon fichier 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
Ajouter dans votre Build.gradle
Android {
dexOptions {
javaMaxHeapSize "4g"
}
}
Plus d'infos - Android Gradle: Qu'est-ce que javaMaxHeapSize "4g"?
Mise à jour du 25 juin 2017
Chez Google IO 2017, il y a eu des mises à jour concernant ce sujet. Il n'est plus recommandé de définir le drapeau sur les options dex, de sorte que si vous avez quelque chose comme la suivante, vous pouvez le supprimer.
dexOptions {
javaMaxHeapSize "2g"
}
Réponse originale:
Android Studio 2.1 active Dex In Process qui partage le VM avec Gradle pour améliorer les temps de génération. Pour cette raison, il est nécessaire d'augmenter la taille du démon Gradle pour intégrer ces processus Dex.
Au moins, il faut 2 Go de mémoire, mais vous pouvez en essayer trois si vous en avez les moyens.
gradle.properties.
org.gradle.jvmargs=-Xmx3072m
Par défaut, la taille de segment Java max est de 1 Go, mais si vous l'avez modifiée dans le fichier build.gradle ...
build.gradle (App)
dexOptions {
javaMaxHeapSize "2g"
}
... vous devez redimensionner la taille du démon Gradle en conséquence (elle doit être plus grande pour correspondre au tas).
Remarques:
Laissez simplement cela sur votre gradle.properties:
org.gradle.jvmargs=-Xmx2048m
Vous pouvez regarder cet article comme référence.
Je sais que c'est trop tard pour la réponse mais j'espère que cela aidera à quelqu'un
J'ai essayé beaucoup de chose et beaucoup de recherche, mais rien ne fonctionne pour moi, y compris suivre et build.gradle (App) aussi ne fonctionne pas dans mon cas
Android {
dexOptions {
javaMaxHeapSize "4g"
}
}
Aussi, vous pouvez essayer d'ajouter sur votre gradle.properties:
org.gradle.jvmargs=-Xmx2048m
Dans mon cas, le problème est l'utilisation du processeur, il y a beaucoup de processus en cours pendant que je construis apk, je tue juste certains processus tels que genymotion, skype, safari, etc.
Modifiez ou créez un fichier nommé gradle.properties dans le répertoire suivant.
Pour Mac, /Users/USER_NAME/.gradle/gradle.properties
Pour Linux, /home/USER_NAME/.gradle/gradle.properties
Pour Windows, C:\Utilisateurs\USER_NAME.gradle\gradle.properties
et appliquez les modifications ci-dessus. Enfin, il devrait ressembler à
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
Veuillez vous référer à ce lien https://tausiq.wordpress.com/2015/02/24/Android-speed-up-gradle-build-process-in-Android-studio/
Vous pouvez aller de l'avant et changer build.gradle
comme ça (comme l'a suggéré Veeresh Charantimath):
Android {
dexOptions {
javaMaxHeapSize "2g"
}
}
Et ensuite, vous pourriez avoir à vous soucier de trucs MultiDex (vous en aurez besoin pour les gros projets Android). Mais votre problème peut être plus simple. Il est possible que vous compiliez et incluiez dans votre projet des bibliothèques inutiles. J'ai fait face à ce problème sur mon petit projet. Voici ce que j'ai fait pour résoudre ce problème:
J'ai enlevé ceci de build.gradle
:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Et j'ai manuellement supprimé mon dossier de construction à la racine de l'application. Problème résolu.
Je suis presque sûr que javaMaxHeapSize
et org.gradle.jvmargs
s’excluent mutuellement.
javaMaxHeapSize
est l'ancienne façon de le faire, avec dex exécuté en dehors du processus. Ce sera un argument pour le processus dex.org.gradle.jvmargs
est la nouvelle façon de le faire, avec dex dans le processus gradle. C'est la mémoire maximale pour tout le processus (gradé, y compris dex)L'avertissement dit, c'est que org.gradle.jvmargs
devrait être> = javaMaxHeapSize (what you used previously for dex)
+ 512M (an estimation of what's needed for gradle own needs)
.
Donc, si vous voulez utiliser dex in process (ce qui est plus rapide), vous ne devriez pas vous soucier de javaMaxHeapSize
. Il suffit de définir org.gradle.jvmargs
sur une valeur correcte pour votre projet/machine.
Est-ce une erreur ou un avertissement?
Parfois, ce n'est qu'un avertissement et je peux réussir à le construire avec succès:
: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):
(...)
Donc, le problème qui peut empêcher une construction réussie peut être un autre ...
Dans WINDOW'S, ouvrez le fichier gradle.properties de ~\Users\ UserName \. Gradle comme indiqué ci-dessous: pour plus d'informations entrez la description du lien ici
et assurez-vous de définir sa valeur minimale à 4608M, comme indiqué ci-dessous pour des constructions plus rapides org.gradle.jvmargs = - Xmx4608M
Une fois que vous faites cela, vous pouvez voir la différence de vitesse entre le jour et la nuit pour la construction de votre application ...
Exemple, dans gradle.properties
de la racine de votre projet.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
S'il s'agit d'une absence, créez un fichier comme celui-ci, puis ajoutez org.gradle.jvmargs = -Xmx1536m
sinon, s'il y en a déjà une, augmentez la taille.
J'ai rencontré le même problème, où j'ai résolu par cette voie.
Il semble y avoir un bug:
https://code.google.com/p/Android/issues/detail?id=208214
Utilisation de com.Android.tools.build:gradle:2.1.2
Je règle org.gradle.jvmargs=-Xmx3415M
avec dexOptions.javaMaxHeapSize "2g"
et le message d'erreur disparaît.