2015-08-21 7 views
16

dostaję java.lang.OutOfMemoryError: GC granica przekroczona napowietrznych podczas uruchamiania Gradle na Androidzie 1.4 ... to są moje depedencies:java.lang.OutOfMemoryError: GC granica przekroczona napowietrznych na Androidzie 1.4

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:[email protected]') { 
     transitive = true; 
    } 

Jak to naprawić?

+1

dodać 'dexOptions { // Prevent OutOfMemory z MultiDex podczas fazy budowlanej javaMaxHeapSize "4g" }' w swojej ** build.gradle ** –

Odpowiedz

45

Dodaj to do android zamknięcia (build Gradle):

dexOptions { 
     javaMaxHeapSize "4g" 
} 

to rozwiąże problem. Mimo to, jeśli obliczu problemu zobaczyć na poniższy link

GC overhead limit exceeded error

+1

Dzięki sir , :) –

+0

Witamy .. Z przyjemnością pomożemy. Ciesz się kodowaniem :) –

+2

'incremental true' jest przestarzałe i nie ma wpływu na proces kompilacji. Można więc zignorować. – NarendraJi

1

Kiedy JVM/Dalvik spędza więcej niż 98% robi GC, a tylko 2% lub mniej w zależności od wielkości sterty jest odzyskał „java.lang.OutOfMemoryError : Limit kosztów ogólnych GC przekroczył "zostanie zgłoszony.

Rozwiązaniem jest rozszerzenie przestrzeni sterty lub użycie narzędzi do profilowania/analizatorów zrzutów pamięci i próba znalezienia przyczyny problemu.

+0

Co masz na myśli mówiąc o ** rozszerzeniu przestrzeni sterty **? –

14

To, co proponuję:

Dodaj to do swojej "gradle.properties" file:

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

również czytać this article. Możesz być w stanie dokonać budynek nieco szybciej, przez dodanie kombinacji tych:

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

Działa na systemie Android 2.1, dziękuję. – Aspicas

+0

Czy te funkcje nie są inkubowane? –

+0

Domyślnie daemon jest włączony w najnowszych wersjach gradle. – Marko

1

dexOptions { javaMaxHeapSize „4G” }

można po prostu pójść na maksymalny rozmiar sterty. przyrostowe jest deprectaed i domyślnie przyrostowe pole jest prawdą