Android Studio:GC超时限制已超出

25
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> java.lang.OutOfMemoryError: GC overhead limit exceeded

尝试过:

dexOptions {
    javaMaxHeapSize "4g"
}

这似乎是网上唯一可用的解决方案。

但在第二次构建时仍然超出了限制,除非我杀掉Studio任务并重新启动,这样才能第一次工作。

build.gradle 中肯定没有太多依赖项。

build.grade

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.xxxxx.android"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 8
        versionName "1.3"
    }

    dexOptions {
        javaMaxHeapSize "4g"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile 'com.squareup.okhttp:okhttp:2.3.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.3.0'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.google.android.gms:play-services-location:+'
}

1
你可以展示完整的build.gradle文件吗? - IlyaGulya
通过增加Java堆大小,可以解决此问题,如果还不够,请查看https://readyandroid.wordpress.com/2020/05/02/gc-overhead-limit-exceeded-android-studio/。 - Ready Android
7个回答

40

这是一个关于gradle的Java堆内存不足的问题,而不是IDE的问题

我在gradle.properties中增加了Java堆内存

org.gradle.jvmargs=-Xms1024m -Xmx4096m

21

1

如果任何人仍然面对问题,并且增加 IDE内存和 gradle.properties没有影响,则 使缓存失效/重新启动 是您的最后一选择。在我的情况下,在 使缓存失效/重新启动 后它起作用了。


相同的问题。需要定期使其失效/重新启动。还有其他解决方案吗? - Rinat Diushenov
不,我在清除缓存/重启后发现这个问题两次,之后它就正常工作了。 - Fazal Hussain
问题是我必须每3-4次构建后重新启动/使其失效,定期这样做或者否则它就无法构建,使用了100%的CPU和8GB的RAM。对我来说并不是一个真正的解决方案。 - Rinat Diushenov
1
清除缓存/重启太慢。我的解决方法是在任务管理器中终止JDK进程,并在重新构建之前进行干净的构建。希望能帮助遇到此问题的人。 - caneru

0
如果有人在未来遇到这个问题,无法增加IDE内存,还有另一个选项,您需要进入您的Android文件夹,在那里您会找到一个转储文件,该文件可能超过400MB,请删除该文件,然后再试一次。干杯!


0

增加IDE内存可以帮助解决问题,前提是设备上有足够的可用内存,而清除缓存/重启需要太长时间。我的解决方法是在任务管理器中终止JDK进程,并在重新构建之前进行清理构建。希望这对那些遇到此问题的人有所帮助。


0

大多数答案都涉及增加堆内存,这是正确的。如果您只是检出了项目(甚至无法同步gradle),可以通过Android Studio首选项(设置)中的gradle属性调整来完成,方法如下:

  • Mac:Android Studio / 首选项 / 外观和行为 / 内存设置
  • Windows:Android Studio / 文件 / 设置 / 外观和行为 / 内存设置

一旦进入正确的设置,建议将以下值设置为:

  • IDE最大堆大小:2048 MB
  • Gradle守护程序最大堆大小:2048 MB
  • Kotlin守护程序最大堆大小:2048 MB

请参阅下面的图片:
enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接