2016-07-29 14 views
0

Ich baue eine App, wo ich Location Fused Provider und Firebase Cloud Messaging verwende. Als ich waren gerade Firebase Wolke mit Messaging alles war in Ordnung, aber wenn ich Fused Standorte hinzugefügt und wollte App bauen, gibt Konsole mir diesen Fehler:Warum Gradle diesen Fehler gibt?

Error:Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded 
    Error:1 error; aborting 
    :presentation:transformClassesWithDexForDebug FAILED 
    Error:Execution failed for task ':presentation:transformClassesWithDexForDebug'. 
com.android.build.api.transform.TransformException: `com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 1` 

Das ist mein gradle ist:

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 
    compileOptions.incremental = false 

    defaultConfig { 
     applicationId "com.telnet.asp" 

     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 

     multiDexEnabled true 

    } 

    dataBinding { 
     enabled = true 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 

    apt 'com.google.dagger:dagger-compiler:2.2' 
    provided 'javax.annotation:jsr250-api:1.0' 

    compile project(path: ':domain') 
    compile project(path: ':data') 

    compile 'com.android.support:appcompat-v7:23.4.0' 
    compile 'com.fasterxml.jackson.core:jackson-databind:2.7.0-rc2' 
    compile 'com.android.support:design:23.4.0' 
    compile 'javax.inject:javax.inject:1' 
    compile 'com.squareup.retrofit2:retrofit:2.1.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
    compile 'io.reactivex:rxandroid:1.2.1' 
    compile 'io.reactivex:rxjava:1.1.6' 
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0' 
    compile 'com.google.dagger:dagger:2.2' 
    compile 'com.android.support:support-v4:23.4.0' 

    compile 'com.jakewharton:butterknife:6.1.0' 

    compile 'net.danlew:android.joda:2.9.4.1' 

    compile 'com.android.support:percent:23.4.0' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.google.firebase:firebase-messaging:9.0.0' 
    compile 'com.google.android.gms:play-services:9.0.0' 


} 
apply plugin: 'com.google.gms.google-services' 

Does Kann jemand das beheben? Bitte helfen Sie.

+0

Aufruf 'buildToolsVersion "24.0.0"' –

+0

und fügen Sie 'dexOptions { inkrementelle wahr JavaMaxHeapSize" erhöhen 4g " }' –

Antwort

2

Versuchen hinzufügen

dexOptions { 
     javaMaxHeapSize "4g" 
    } 
1

Sie müssen dexOptions zu Ihrem build.gradle hinzuzufügen:

android { 
    compileSdkVersion 24 
    buildToolsVersion "23.0.3" 

    // ... 

    dexOptions { 
     incremental = true; 
     preDexLibraries = false 
     javaMaxHeapSize "4g" // 2g should be also OK 
    } 
} 
1

Ihre Anwendung versucht, eine größere Menge an Speicher zugewiesen und wird OutOfMemory, weil es nicht zu .

Achten Sie auf die JavaMaxHeapSize mit

android { 
    //... 
    dexOptions { 
     incremental = true; 
     javaMaxHeapSize "4g" // tweak the value here if you need/want 
    } 
    // ... 
} 

Auch check this google link regarding this error durch die Überprüfung ihrer Stack-Trace

+0

Und wenn ich diese Bedingung in Gradle stelle, bedeutet es, dass mein Problem in dieser App für immer gelöst ist oder es nur vorübergehend ist und ich etwas tun sollte, um das Gedächtnis zu reduzieren? – Atenica

+0

Lass uns das Problem als Ganzes sehen. Im Zusammenhang mit diesem Thread handelt es sich um Gradle-Speicher, der sich auf den Kompilierzeitspeicher bezieht. In diesem Fall müssen Sie nur den Kompilierungs-Heap erhöhen und werden höchstwahrscheinlich Ihre Kompilierungsprobleme lösen. Wenn Sie auf Anwendungsspeicher verweisen (Heap), ja. Sie sollten immer mit der Speicherbelegung umgehen, um Speicherlecks oder OutOfMemory-Fehler zu vermeiden. Überprüfen Sie diesen Beitrag http://stackoverflow.com/questions/38592211/memory-not-freeing-after-fragment-is-removed/38595895#38595895 –