我正在使用一台非常好的台式机,配置非常好,8 GB内存,也有很多可用空间。
在我的设备中运行应用程序android studio一直给我这个错误,
Error: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: java.lang.UnsupportedOperationException
my studio64.exe.vmoptions文件
-Xms256m
-Xmx1024m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-da
-Djna.nosys=true
-Djna.boot.library.path=
-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Didea.paths.selector=AndroidStudio2.2
-Didea.platform.prefix=AndroidStudio
-Didea.jre.check=true
请让我知道..我也禁用了即时运行功能。
答案 0 :(得分:1)
只需在build.gradle文件中添加以下行。
dexOptions {
javaMaxHeapSize "4g"
}
我希望这会对你有所帮助。
答案 1 :(得分:0)
选择 CMS垃圾收集会对JVM的JVM“新空间”的维度产生不利影响。如果那个空间太小,那么你会经常看到(年轻一代)GC,这可能会导致你的问题。
,例如,
/usr/bin/java -Xms4096m -Xmx4096m -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -version
报告只有160 MB的“新空间”,尽管堆总大小为4 GB。这是在一个2核系统上(数量随核心数增加),使用JVM 1.7.0_75。
您应使用类似命令检查结果是什么 - 查找行par new generation total ...K
。如果数字显得很低,那么这就是问题的根本原因。
然后,您可以通过添加选项-XX:NewRatio=2 -XX:NewSize=512m
来解决此问题,这将明确...
一般情况下,您应该非常小心地调整GC设置,例如添加-XX:+UseConcMarkSweepGC
- 如果没有该选项,则不会出现错误的尺寸标注。