如何解决java.lang.OutOfMemoryError:android studio中的GC开销限制超出错误

时间:2014-11-27 06:34:56

标签: android garbage-collection out-of-memory

我正在使用android studio 1.0 RC用于64位linux。

当我运行我的应用程序时,我正在

"java.lang.OutOfMemoryError: GC overhead limit exceeded"

当我搜索如何解决此错误时,我得到了像add:

这样的解决方案
  • -XX:-UseGCOverheadLimit to studio.vmoptions或studio64.vmoptions
  • -Xmx2000m到studio.vmoptions或studio64.vmoptions等。

这些对我不起作用。

请帮忙。提前致谢

7 个答案:

答案 0 :(得分:57)

我通过添加

解决了这个问题
dexOptions { 
          incremental true 
          javaMaxHeapSize "4g" 
} 

到build.gradle文件中的android闭包。

中找到了这个答案

OutOfMemoryError: GC overhead limit exceeded

答案 1 :(得分:11)

将其添加到“gradle.properties”文件中:

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError

另外,请阅读this article。您可以通过添加以下组合来使建筑更快一些:

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

编辑:根据我的经验更新的答案:

在Android Studio上,选择Help - > Edit custom VM options,然后设置允许IDE使用的最大内存。例如,如果您想要5GB,请使用:

-Xmx5g

保存文件,关闭IDE的所有窗口(确保它没有进程),然后重新启动IDE。

答案 2 :(得分:3)

build.gradle

中添加此行
dexOptions
         {
               incremental false
               javaMaxHeapSize "2048M" 
               preDexLibraries = false
         }

答案 3 :(得分:1)

我也有同样的问题 - 我的原因不同。我正在努力备份一些文件,并意外地在资源文件夹中删除了一个大文件。它接近40MB。

删除此文件后,错误消失了。

答案 4 :(得分:1)

我也有这个问题 我的解决方案是: 只需修改项目根目录中的gradle.properties

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

default jvmargs is 256当你编译很多频道apk时会导致这个问题!

答案 5 :(得分:0)

在“首选项/设置”下找到内存设置(在Mac上为Cmd + Shift + A或单击“帮助”并开始键入“内存设置”),并增加IDE堆大小和/或“守护程序堆大小”,以使您满意 enter image description here

答案 6 :(得分:0)

对于Android项目,您使用gradle插件,位于root build.gradle.kts:

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:${gradle_plugin_version}")
    }
}

将gradle_plugin_version升级到最新版本。

原因是最新的Gradle版本应与最新的Gradle插件版本一起使用。

例如,对于Gradle 6.3,您应该使用gradle-plugin 4.0.1:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:4.0.1")
    }
}