错误java.lang.outofmemoryerror:超出gc开销限制

sshcrbum  于 2021-06-01  发布在  Hadoop
关注(0)|答案(20)|浏览(535)

我在执行junit测试时收到以下错误消息:

java.lang.OutOfMemoryError: GC overhead limit exceeded

我知道这是什么 OutOfMemoryError 是的,但是gc开销限制是什么意思?我怎样才能解决这个问题?

hkmswyz6

hkmswyz616#

重新启动我的macbook为我解决了这个问题。

1tuwyuhd

1tuwyuhd17#

在build.gradle中增加javamaxheapsize(module:app)文件

dexOptions {
    javaMaxHeapSize "1g"
}

to(在gradle中添加此行)

dexOptions {
        javaMaxHeapSize "4g"
    }
1sbrub3j

1sbrub3j18#

在netbeans中,设计最大堆大小可能会有所帮助。转到运行=>设置项目配置=>自定义。在弹出的窗口中,转到vm选项,填写 -Xms2048m -Xmx2048m . 它可以解决堆大小问题。

t9aqgxwy

t9aqgxwy19#

我在androidstudio工作,在尝试生成要发布的签名apk时遇到了这个错误。我能够毫无问题地构建和测试一个调试apk,但是只要我想构建一个发布apk,构建过程就会连续运行几分钟,最后以“error java.lang.outofmemoryerror:gc overhead limit exceeded”结束。我增加了vm和androiddex编译器的堆大小,但问题仍然存在。最后,经过几个小时和一大杯咖啡之后,我发现问题出在我的应用程序级别“build.gradle”文件中——我将发布版本类型的“minifyenabled”参数设置为“false”,因此,在没有经过“代码收缩”过程的代码上运行proguard stuff(请参阅https://developer.android.com/studio/build/shrink-code.html). 我将“minifyenabled”参数更改为“true”,发布版本像做梦一样执行:)
简而言之,我必须将我的应用程序级别的“build.gradle”文件从://。。。

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.sign_config_release
    }
    debug {
        debuggable true
        signingConfig signingConfigs.sign_config_debug
    }
}

//...

//...

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.sign_config_release
    }
    debug {
        debuggable true
        signingConfig signingConfigs.sign_config_debug
    }
}

//...
aydmsdu9

aydmsdu920#

试试这个
打开 build.gradle 文件

android {
        dexOptions {
           javaMaxHeapSize = "4g"
        }
   }

相关问题