2016-07-29 136 views
0

我正在構建一個應用程序,使用位置融合提供程序和Firebase雲消息。當我用剛剛火力地堡的雲端通訊一切正常,但是當我加入熔位置,想建立的應用程序,控制檯使我這個錯誤:爲什麼Gradle會出現此錯誤?

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` 

這是我的gradle產出:

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' 

不有人知道怎麼修這個東西嗎?請幫忙。

+0

調用'buildToolsVersion 「24.0.0」' –

+0

,並添加'dexOptions { 增量真 javaMaxHeapSize「 4g「 }' –

回答

2

嘗試添加

dexOptions { 
     javaMaxHeapSize "4g" 
    } 
1

您需要添加dexOptionsbuild.gradle

android { 
    compileSdkVersion 24 
    buildToolsVersion "23.0.3" 

    // ... 

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

您的應用程序試圖分配較大的內存量,並有繼續內存不足,因爲它未能。

確保增加javaMaxHeapSize與

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

此外,check this google link regarding this error通過檢查堆棧跟蹤

+0

當我把這個條件放在gradle中時,這是否意味着我的問題在這個應用程序中永遠解決,或者它只是暫時的,我應該做些什麼來減少內存? – Atenica

+0

讓我們看看整個問題。在這個線程的上下文中,您正在談論關於編譯時內存的gradle內存。在這種情況下,您只需要增加編譯堆,並且很可能會解決您的編譯問題。 如果你指的是應用程序內存(堆),是的。您應該始終處理內存使用情況,以防止內存泄漏或OutOfMemory錯誤。檢查這個帖子http://stackoverflow.com/questions/38592211/memory-not-freeing-after-fragment-is-removed/38595895#38595895 –

相關問題