簡體   English   中英

獲取錯誤:java.lang.OutOfMemoryError:超出了GC開銷限制

[英]Getting Error:java.lang.OutOfMemoryError: GC overhead limit exceeded

我收到錯誤消息:未達到預期的最高水平。 日志顯示增加堆大小。 我在應用程序中添加了android:largeHeap = true。 然后我也收到此錯誤。

表現:

  <application
    android:allowBackup="true"
    android:name="android.support.multidex.MultiDexApplication"
    android:icon="@drawable/icon1"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

日志:

To run dex in process, the Gradle daemon needs a larger heap.
It currently has approximately 910 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.
To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html
Error:UNEXPECTED TOP-LEVEL ERROR:
Error:java.lang.OutOfMemoryError: GC overhead limit exceeded
Error:  at java.util.Arrays.copyOf(Arrays.java:3236)
Error:  at java.io.ByteArrayOutputStream.toByteArray(ByteArrayOutputStream.java:191)
Error:  at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:279)
Error:  at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
Error:  at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
Error:  at com.android.dx.command.dexer.Main.processOne(Main.java:672)
Error:  at com.android.dx.command.dexer.Main.processAllFiles(Main.java:569)
Error:  at com.android.dx.command.dexer.Main.runMultiDex(Main.java:366)
Error:  at com.android.dx.command.dexer.Main.run(Main.java:275)
Error:  at com.android.dx.command.dexer.Main.main(Main.java:245)
Error:  at com.android.dx.command.Main.main(Main.java:106)
:app:transformClassesWithDexForDebug FAILED
Error:Execution failed for task ':app: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 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 3
Information:BUILD FAILED
Information:Total time: 7 mins 31.106 secs
Information:14 errors
Information:0 warnings
Information:See complete output in console

該怎么辦?

在您的build.gradle嘗試添加以下內容:

dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}
  • incremental true用於加快構建速度。
  • javaMaxHeapSize "4g"指定dex進程的堆大小。

日志說

“為此,請在項目gradle.properties中設置org.gradle.jvmargs = -Xmx2048M。”

因此,打開您的gradle.properties文件並添加“ org.gradle.jvmargs = -Xmx2048M”行

您的日志:

為此,請在項目gradle.properties中設置org.gradle.jvmargs = -Xmx2048M

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM