I am getting this Gradle error every time I run my app. The error is:
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
Here is my build.gradle (Module:app) file:
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'
}
And here is my build.gradle(Project) file:
// 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
}
and here is my gradle.properties file :
# 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
I know it's too late for the answer but hope it will helpful to someone
I have tried lot of thing and search lot but nothing works for me include following and gradle.properties also dosen't work in my case
Also You Can Try Add on your gradle.properties:
In my case the problem is cpu utilization there is lot of process running while i build apk i just kill some processes like genymotion,skype,safari etc and than invalidate caches/restart it works for me.
Update from June 25, 2017
At Google IO 2017 there was some updates about this topic. It's not recommended anymore to set the flag on the dexOptions, so if you have something like the next, you can delete it.
Original answer:
Android Studio 2.1 enables Dex In Process which shares the VM with Gradle to improve build times. Due to this, it's necessary to increase the size of the Gradle daemon to incorporate those Dex processes.
At least it's necessary 2 gigs of memory, but you can try with three if you can afford it.
gradle.properties.
By default the Java max heap size is one gig, but in case you have modified it on the build.gradle file...
build.gradle (App)
...you have to resize the Gradle daemon size accordingly (has to be bigger to fit the heap).
Resources
Notes:
I'm pretty sure
javaMaxHeapSize
andorg.gradle.jvmargs
are mutually exclusive.javaMaxHeapSize
is the old way of doing it, with dex run outside of the process. This will be an argument to the dex process.org.gradle.jvmargs
is the new way of doing it, with dex inside the gradle process. This is the max memory for the whole process (gradle, including dex)What the warning says is that
org.gradle.jvmargs
should be >=javaMaxHeapSize (what you used previously for dex)
+512M (an estimation of what's needed for gradle own needs)
.So if you want to use dex in process (which is faster), you shouldn't care about
javaMaxHeapSize
. Just setorg.gradle.jvmargs
to a correct value for your project/machine.Modify or create a file named gradle.properties in the following directory.
For Mac, /Users/USER_NAME/.gradle/gradle.properties
For Linux, /home/USER_NAME/.gradle/gradle.properties
For Windows, C:\Users\USER_NAME.gradle\gradle.properties
and apply the above changes. Finally it should look like,
Please refer this link https://tausiq.wordpress.com/2015/02/24/android-speed-up-gradle-build-process-in-android-studio/
There appears to be a bug:
https://code.google.com/p/android/issues/detail?id=208214
Using
com.android.tools.build:gradle:2.1.2
I setorg.gradle.jvmargs=-Xmx3415M
withdexOptions.javaMaxHeapSize "2g"
and the error message went away.In WINDOW'S open the gradle.properties from ~\Users\UserName\.gradle as shown below: for more info enter link description here
and make sure to set its value to minimum to 4608M as shown below for faster builds org.gradle.jvmargs=-Xmx4608M
Once you do that then you can see the day and night difference in speed building your app...