Ich erhalte diesen Gradle-Fehler jedes Mal, wenn ich meine App starte. Der Fehler ist:
Um Dex in Process auszuführen, benötigt der Gradle-Daemon einen größeren Heap. Es hat derzeit ca. 910 MB.
Erhöhen Sie für schnellere Builds die maximale Heap-Größe für den Gradle-Daemon auf mehr als 2048 MB.
Setzen Sie dazu org.gradle.jvmargs = -Xmx2048M im Projekt gradle.properties. Weitere Informationen finden Sie unter https://docs.gradle.org/current/userguide/build_environment.html
Hier ist meine build.gradle-Datei (Modul: 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'
}
Und hier ist meine build.gradle (Projekt) -Datei:
// 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
}
und hier ist meine gradle.properties Datei:
# 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
android
android-studio
gradle-daemon
Rohith Manchikalapati
quelle
quelle
Update vom 25. Juni 2017
Bei Google IO 2017 gab es einige Updates zu diesem Thema. Es wird nicht mehr empfohlen, das Flag für die dexOptions zu setzen. Wenn Sie also etwas wie das nächste haben, können Sie es löschen.
dexOptions { javaMaxHeapSize "2g" }
Ursprüngliche Antwort:
Android Studio 2.1 aktiviert Dex In Process, das die VM mit Gradle teilt, um die Erstellungszeiten zu verbessern. Aus diesem Grund muss der Gradle-Daemon vergrößert werden, um diese Dex-Prozesse zu integrieren.
Zumindest sind 2 GB Speicher erforderlich, aber Sie können es mit drei versuchen, wenn Sie es sich leisten können.
gradle.properties.
org.gradle.jvmargs=-Xmx3072m
Standardmäßig beträgt die maximale Größe des Java-Heapspeichers einen Gig, falls Sie ihn jedoch in der Datei build.gradle geändert haben ...
build.gradle (App)
dexOptions { javaMaxHeapSize "2g" }
... Sie müssen die Größe des Gradle-Daemons entsprechend ändern (muss größer sein, um auf den Heap zu passen).
Ressourcen
Anmerkungen:
quelle
org.gradle.jvmargs=-Xmx3072m
zu~/.gradle/gradle.properties
Lassen Sie das einfach auf Ihren gradle.properties:
org.gradle.jvmargs=-Xmx2048m
Sie können diesen Artikel als Referenz betrachten.
quelle
Ich weiß, es ist zu spät für die Antwort, aber ich hoffe, es wird jemandem helfen
Ich habe viel ausprobiert und viel gesucht, aber nichts funktioniert für mich, einschließlich Folgen und build.gradle (App) funktioniert in meinem Fall auch nicht
android { dexOptions { javaMaxHeapSize "4g" } }
Sie können auch versuchen, Ihre gradle.properties hinzuzufügen :
org.gradle.jvmargs=-Xmx2048m
In meinem Fall ist das Problem die CPU-Auslastung. Es laufen viele Prozesse, während ich apk erstelle. Ich töte nur einige Prozesse wie Genymotion, Skype, Safari usw. und dann mache ich Caches ungültig / starte es neu.
quelle
Ändern oder erstellen Sie eine Datei mit dem Namen gradle.properties im folgenden Verzeichnis.
Für Mac /Users/USER_NAME/.gradle/gradle.properties
Unter Linux /home/USER_NAME/.gradle/gradle.properties
Unter Windows C: \ Users \ USER_NAME.gradle \ gradle.properties
und wenden Sie die obigen Änderungen an. Schließlich sollte es so aussehen:
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
Bitte beziehen Sie sich auf diesen Link https://tausiq.wordpress.com/2015/02/24/android-speed-up-gradle-build-process-in-android-studio/
quelle
Sie können
build.gradle
fortfahren und sich so ändern (wie Veeresh Charantimath vorgeschlagen hat):android { dexOptions { javaMaxHeapSize "2g" } }
Und dann müssen Sie möglicherweise mit MultiDex-Sachen herumspielen (Sie werden es für große Android-Projekte benötigen). Aber Ihr Problem kann einfacher sein. Es besteht die Möglichkeit, dass Sie einige nicht benötigte Bibliotheken kompilieren und in Ihr Projekt aufnehmen. Ich habe dieses Problem bei meinem kleinen Projekt festgestellt. Folgendes habe ich getan, um das Problem zu beheben:
Ich habe dies entfernt von
build.gradle
:dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
Und ich habe meinen Build-Ordner manuell aus dem Anwendungsstamm entfernt. Problem gelöst.
quelle
Ist es ein Fehler oder eine Warnung?
Manchmal ist dies nur eine Warnung und ich kann es schaffen, sie erfolgreich zu erstellen:
: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): (...)
Das Problem, das einen erfolgreichen Build verhindern kann, kann also ein anderes sein ...
quelle
Öffnen Sie in WINDOW'S die Datei gradle.properties unter ~ \ Users \ UserName \ .gradle wie unten gezeigt: Für weitere Informationen geben Sie hier die Linkbeschreibung ein
und stellen Sie sicher, dass der Wert für schnellere Builds auf mindestens 4608 MB festgelegt ist (siehe unten). org.gradle.jvmargs = -Xmx4608M
Sobald Sie dies getan haben, können Sie den Unterschied zwischen Tag und Nacht beim Erstellen Ihrer App sehen ...
quelle
gradle.properties
inC:\Users\USER\.gradle
.Ich bin mir ziemlich sicher
javaMaxHeapSize
und schließe michorg.gradle.jvmargs
gegenseitig aus.javaMaxHeapSize
ist die alte Methode, bei der Dex außerhalb des Prozesses ausgeführt wird. Dies wird ein Argument für den Dex-Prozess sein.org.gradle.jvmargs
ist die neue Art, dies zu tun, mit Dex innerhalb des Gradle-Prozesses. Dies ist der maximale Speicher für den gesamten Prozess (Gradle, einschließlich Dex).Die Warnung besagt,
org.gradle.jvmargs
dass> =javaMaxHeapSize (what you used previously for dex)
+ sein sollte512M (an estimation of what's needed for gradle own needs)
.Wenn Sie also Dex in Process verwenden möchten (was schneller ist), sollten Sie sich nicht darum kümmern
javaMaxHeapSize
. Stellen Sie einfachorg.gradle.jvmargs
einen korrekten Wert für Ihr Projekt / Ihre Maschine ein.quelle
Es scheint einen Fehler zu geben:
https://code.google.com/p/android/issues/detail?id=208214
Mit
com.android.tools.build:gradle:2.1.2
Ich setzeorg.gradle.jvmargs=-Xmx3415M
mitdexOptions.javaMaxHeapSize "2g"
und die Fehlermeldung ging weg.quelle
Wenn dies nicht der Fall ist, erstellen Sie bitte eine Datei wie diese und fügen Sie dann org.gradle.jvmargs = -Xmx1536m hinzu
Andernfalls, falls bereits vorhanden, erhöhen Sie bitte die Größe.
Ich habe das gleiche Problem, wo ich auf diese Weise gelöst habe.
quelle
Beispiel in
gradle.properties
Ihrem Projektstamm.org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
quelle
Versuche dies
defaultConfig { ... // Enabling multidex support. multiDexEnabled true }
quelle