2015-08-21 2 views
16

ottengo una java.lang.OutOfMemoryError: limite di testa GC superato quando eseguito Gradle su Android 1.4 ... questi sono i miei depedencies:java.lang.OutOfMemoryError: limite di testa GC superato su Android 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; 
    } 

Come può essere risolto?

+1

aggiungere 'dexOptions {// Prevenire OutOfMemory con MultiDex durante la fase di costruzione javaMaxHeapSize "4G" }' nel vostro ** ** build.gradle –

risposta

45

Aggiungi questo al vostro chiusura Android (build Gradle):

dexOptions { 
     javaMaxHeapSize "4g" 
} 

Questo risolverà il vostro problema. Eppure, se si faccia problemi consultare il seguente link

GC overhead limit exceeded error

+1

Grazie signore, , :) –

+0

Benvenuto .. Felice di aiutare. Godetevi la codifica :) –

+2

'incremental true' è deprecato ora e non ha alcun effetto sul processo di compilazione. Quindi, può essere ignorato. – NarendraJi

1

Quando JVM/Dalvik spende più del 98% facendo GC e solo il 2% o meno della dimensione heap viene recuperato il “java.lang.OutOfMemoryError : Viene superato il limite di sovraccarico GC superato ".

La soluzione è di estendere lo spazio heap o utilizzare strumenti di analisi/analizzatori di dump della memoria e cercare di individuare la causa del problema.

+0

Cosa intendi con ** estendi spazio heap **? –

14

Questo è quello che io suggerisco:

Aggiungi questo al vostro file "gradle.properties":

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

Inoltre, leggere this article. Potreste essere in grado di rendere l'edificio un po 'più veloce, con l'aggiunta di una combinazione di questi:

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

Funziona su Android 2.1, grazie. – Aspicas

+0

Non sono quelle funzioni di incubazione? Il daemon –

+0

è attivo per impostazione predefinita nelle ultime versioni gradle. – Marko

1

dexOptions { javaMaxHeapSize "4G" }

Si può solo andare per la dimensione massima heap. incrementale è deprecata e per impostazione predefinita campo incrementale vale