今天在開辟專案發生了件恐怖的案件
dexOptions {
javaMaxHeapSize "4g"
}
資料濫觞:
http://stackoverflow.com/questions/25013638/android-studio-google-jar-file-causing-gc-overhead-limit-exceeded-error
https://puremonkey2010.blogspot.tw/2011/11/java-javalangoutofmemoryerror-gc.html
OutOfMemoryError 相信大師都很熟習
那什麼是GC overhead limit exceeded呢?
這其實有兩個回答
1、花太多時候在 garbage collect (預設是 98%)翻譯社 太少時間在做翻譯公司程式本來要做的事
2、確立太多物件, 致使 GC 需要花很多氣力與時候去 garbage collect
知道了這件事情以後
我就開始查抄code有無哪裡是不休new Object 的
但其實並沒有這種環境産生
是情是這樣的
一向以來都用Genymotion 開辟的華頓翻譯社
今天想到用舊一點的HTC手機跑跑看
成績就産生了下面的毛病:
後來經過鎮定下來分析
我發現了一點蛛絲馬跡
本來這個毛病是 HeapSize 不足所造成的
也就是說,因為 HeapSize 空間小
所以使得系統一直不竭的做 GC 的動作
而造成APP shutdown
只要在 build.gradle 裡加上這段,就能夠解決問題了
Error:Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
Error:Uncaught translation error: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded
翻譯
。
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: Error while executing java process with main class com.android.dx.command.Main with arguments {--dex --num-threads=4 --multi-dex --main-dex-list /Users/xxx/Documents/Source/StudioProject/xxx/app/build/intermediates/multi-dex/debug/maindexlist.txt --output /Users/xxx/Documents/Source/StudioProject/xxx/app/build/intermediates/transforms/dex/debug/folders/1000/1f/main /Users/xxx/Documents/Source/StudioProject/xxx/app/build/intermediates/transforms/jarMerging/debug/jars/1/1f/combined.jar}
翻譯
。
。
(約30個之後結尾是下面這段)
。
文章出自: http://willy2016.pixnet.net/blog/post/122416118-willy%27s-fish%E6%95%99%E5%AD%B8%E7%AD%86%E8%A8%98%E有關翻譯的問題歡迎諮詢華頓翻譯社
留言列表