40

I get an java.lang.OutOfMemoryError: GC overhead limit exceeded when run gradle on Android 1.4 ... these are my depedencies :

dependencies {
    compile project(':android-crop')
    compile project(':RTEditor-Toolbar')

        compile files('libs/apache-mime4j-0.6.jar')
        compile files('libs/httpmime-4.1.3.jar')
    /*    compile files('libs/httpcore-4.4.1.jar')*/
    compile files('libs/jetbrains-annotations.jar')
    compile files('libs/pinchzoom.jar')
    compile files('libs/gcm.jar')
    compile 'com.google.android.gms:play-services:7.8.0'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:cardview-v7:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.android.support:recyclerview-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
    //three party library
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.mcxiaoke.volley:library:1.0.18'
    compile 'com.vinaysshenoy:mugen:1.0.1'
    compile 'com.github.clans:fab:1.5.5'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.github.curioustechizen.android-ago:library:1.3.0'
    compile 'com.squareup.okio:okio:1.5.0'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.5.1@aar') {
        transitive = true;
    }

How can this be fixed?

1
  • 1
    add dexOptions { // Prevent OutOfMemory with MultiDex during the build phase javaMaxHeapSize "4g" } in your build.gradle Commented Aug 21, 2015 at 5:36

7 Answers 7

80

Add this to your android closure(build gradle):

 dexOptions {
        javaMaxHeapSize "4g"
 }

This will solve your problem. Still, if you face problem see the following link

GC overhead limit exceeded error

Sign up to request clarification or add additional context in comments.

5 Comments

incremental true is deprecated now, and have no effect on build process. So, can be ignored.
didn't help, I set it to 12gigs and still got the error
@ÁbrahámEndre can you try this stackoverflow.com/questions/36643102/…
already tried that, I've started the IDE with -Xmx4096 and even turned out the GCOverhead, did the same for gradle.properties too and still ran out. Problem is not present if I remove facebook SDK.
just for clarification, add it to app/build.gradle inside the android { } object.
51

This is what I suggest:

Add this to your "gradle.properties" file:

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError

Also, read this article. You might be able to make the building a bit faster, by adding a combination of those:

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

2 Comments

Aren't those incubating features?
daemon is ON by default in the latest gradle versions.
10

In my case, OutOfMemoryError is come from this error. Starting a Gradle Daemon, 1 busy and 6 stopped Daemons could not be reused, use --status for details

To solve this. I use ./gradlew --stop or ./gradle --stop. If still not solved which mean the gradle process is lock (this happen after OutOfMemoryError).

Go to /users/[username]/.gradle/daemon (hidden) folder.

You will see each built gradle version folder like 3.2 3.3 4.0.1 4.1 4.10.1 4.10.2 4.4 4.6 5.4.1 5.5

Go into these folders and remove the file named

registry.bin

registry.bin.lock

For me, I remove all these folders.

Then rebuild you app. Should be work now.

1 Comment

This is it. This is the answer. Works like a charm
6

This worked for me !! Just add the following lines into "gradle.properties" file

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

1 Comment

This answer was given by @android-developer three years previously and with more detail - don't copy other people's answers please.
3

When JVM/Dalvik spends more than 98% doing GC and only 2% or less of the heap size is recovered the “java.lang.OutOfMemoryError: GC overhead limit exceeded” is thrown.

The solution is to extend heap space or use profiling tools/memory dump analyzers and try to find the cause of the problem.

1 Comment

What do you mean by extend heap space?
2

My test were failing in gradle version 5.2.1 "GC overhead limit exceeded java.lang.OutOfMemoryError: GC overhead limit exceeded". I solved by adding maxHeapSize in build.gradle like below:

 test {
        maxHeapSize = "4g"
    }

1 Comment

I had this issue using when running a test that loaded an Excel file with Apache POI. Setting the maxHeapSize to 1g in the test section of my build.gradle file resolved the issue.
-1

just go to prefrence or settings -> memori settings -> and setup your alocated memory

android studio 3.5

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.