java.lang.OutOfMemoryError:超出Android 1.4上的GC开销限制

java.lang.OutOfMemoryError:超出Android 1.4上的GC开销限制,java,android,garbage-collection,Java,Android,Garbage Collection,我得到一个java.lang.OutOfMemoryError:在Android 1.4上运行gradle时超出了GC开销限制。。。 以下是我的家属: dependencies { compile project(':android-crop') compile project(':RTEditor-Toolbar') compile files('libs/apache-mime4j-0.6.jar') compile files('libs/

我得到一个java.lang.OutOfMemoryError:在Android 1.4上运行gradle时超出了GC开销限制。。。 以下是我的家属:

dependencies {
    compile project(':android-crop')
    compile project(':RTEditor-Toolbar')

        compile files('libs/apache-mime4j-0.6.jar')
        compile files('libs/httpmime-4.1.3.jar')
    /*    compile files('libs/httpcore-4.4.1.jar')*/
    compile files('libs/jetbrains-annotations.jar')
    compile files('libs/pinchzoom.jar')
    compile files('libs/gcm.jar')
    compile 'com.google.android.gms:play-services:7.8.0'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:cardview-v7:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.android.support:recyclerview-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
    //three party library
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.mcxiaoke.volley:library:1.0.18'
    compile 'com.vinaysshenoy:mugen:1.0.1'
    compile 'com.github.clans:fab:1.5.5'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.github.curioustechizen.android-ago:library:1.3.0'
    compile 'com.squareup.okio:okio:1.5.0'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
    compile('com.crashlytics.sdk.android:crashlytics:2.5.1@aar') {
        transitive = true;
    }

如何修复此问题?

将此添加到您的android闭包(build gradle)中:

这会解决你的问题。不过,如果您遇到问题,请参见以下链接


当JVM/Dalvik花费98%以上的时间执行GC,并且只恢复了堆大小的2%或更少时,将抛出“java.lang.OutOfMemoryError:超出GC开销限制”


解决方案是扩展堆空间或使用分析工具/内存转储分析器,并尝试找到问题的原因。

这就是我的建议:

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

另外,阅读。通过添加以下各项的组合,您可能可以使建筑更快一些:

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

我的测试在gradle版本5.2.1中失败“GC开销限制超过了java.lang.OutOfMemoryError:GC开销限制超过了”。我通过在build.gradle中添加maxHeapSize解决了这个问题,如下所示:

 test {
        maxHeapSize = "4g"
    }
这对我有用!! 只需将以下行添加到“gradle.properties”文件中


在我的例子中,OutOfMemoryError来自于这个错误

解决这个问题。我使用
/gradlew--stop
/gradle--stop
。 如果仍然没有解决,这意味着gradle进程是锁定的(这发生在OutOfMemoryError之后)

转到
/users/[username]/.gradle/daemon
(隐藏)文件夹

您将看到每个构建的gradle版本文件夹,如
3.23.3 4.0.1 4.1 4.10.1 4.10.2 4.4 4.6 5.4.1 5.5

进入这些文件夹并删除名为的文件

registry.bin

registry.bin.lock

对于我来说,我会删除所有这些文件夹


然后重建你的应用程序。现在应该可以工作了。

只需进入prefrence或settings->memori settings->并设置您的定位内存即可


android studio 3.5

添加
dexOptions{//protect OutOfMemory with MultiDex,在构建阶段使用javaMaxHeapSize“4g”}
在您的构建中。gradleAren不是那些孵化功能吗?在最新的gradle版本中,守护进程默认处于启用状态。扩展堆空间是什么意思?
增量true
现在已被弃用,对构建过程没有影响。所以,可以忽略。没有帮助,我将它设置为12gigs,但仍然得到错误@ÁbrahámEndre你能试试吗?这个已经试过了,我已经用-Xmx4096启动了IDE,甚至产生了GC开销,对gradle.properties也做了同样的操作,但仍然用完了。如果我删除facebook SDK,问题就不存在了。为了澄清,请将其添加到
android{}
对象中的
app/build.gradle
。就是这样。这就是答案。就像一个charmI在运行用apachepoi加载Excel文件的测试时遇到这个问题一样。在我的
build.gradle
文件的
test
部分中,将
maxHeapSize
设置为1g解决了这个问题。这个答案是@android developer三年前给出的,更详细-请不要复制其他人的答案。
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
 test {
        maxHeapSize = "4g"
    }
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true