Error:java.lang.OutOfMemoryError: GC overhead limit exceeded Android Studio
Error:java.lang.OutOfMemoryError: GC overhead limit exceeded Android Studio
我使用的台式机非常好,配置非常好,8 GB 内存,还有很多免费 space。
虽然 运行在我的设备 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
我的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
请告诉我..我也禁用了即时 运行 功能。
只需将以下行添加到您的 build.gradle 文件中。
dexOptions {
javaMaxHeapSize "4g"
}
希望对您有所帮助。
选择 CMS 垃圾收集对 JVM 的 JVM 维度有不良影响 "New Space"。如果 space 太小,那么你会经常看到(年轻一代)GC,这可能会导致你的问题。
例如,
/usr/bin/java -Xms4096m -Xmx4096m -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -version
报告只有 160 MB 的 "New space",尽管总堆大小为 4 GB。这是在使用 JVM 1.7.0_75.
的 2 核心系统上(数量随着核心数量的增加而增加)
您应该使用类似的命令检查结果是什么——查找行par new generation total ...K
。如果数字看起来很低,那么这就是问题的根本原因。
然后您可以通过添加选项 -XX:NewRatio=2 -XX:NewSize=512m
来解决这个问题,这将明确...
- 将 "New space" 上 上限 的标准尺寸规则应用到可用堆的三分之一 space
- 将最小值 "New space" 大小设置为 512 米
一般来说,您在调整 GC 设置时应该非常小心,例如添加 -XX:+UseConcMarkSweepGC
-- 如果没有该选项,错误的维度将不会首先出现。
我使用的台式机非常好,配置非常好,8 GB 内存,还有很多免费 space。
虽然 运行在我的设备 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
我的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
请告诉我..我也禁用了即时 运行 功能。
只需将以下行添加到您的 build.gradle 文件中。
dexOptions {
javaMaxHeapSize "4g"
}
希望对您有所帮助。
选择 CMS 垃圾收集对 JVM 的 JVM 维度有不良影响 "New Space"。如果 space 太小,那么你会经常看到(年轻一代)GC,这可能会导致你的问题。
例如,
/usr/bin/java -Xms4096m -Xmx4096m -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -version
报告只有 160 MB 的 "New space",尽管总堆大小为 4 GB。这是在使用 JVM 1.7.0_75.
的 2 核心系统上(数量随着核心数量的增加而增加)您应该使用类似的命令检查结果是什么——查找行par new generation total ...K
。如果数字看起来很低,那么这就是问题的根本原因。
然后您可以通过添加选项 -XX:NewRatio=2 -XX:NewSize=512m
来解决这个问题,这将明确...
- 将 "New space" 上 上限 的标准尺寸规则应用到可用堆的三分之一 space
- 将最小值 "New space" 大小设置为 512 米
一般来说,您在调整 GC 设置时应该非常小心,例如添加 -XX:+UseConcMarkSweepGC
-- 如果没有该选项,错误的维度将不会首先出现。