运行gradlew assembleRelease时出现内存不足错误-react-native

时间:2019-12-11 11:24:09

标签: java react-native out-of-memory react-native-android

在为我的react native项目发布版本时出现此错误:

Expiring Daemon because JVM heap space is exhausted

> Task :app:transformDexArchiveWithDexMergerForRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithDexMergerForRelease'.
> java.lang.OutOfMemoryError (no error message)

进行了一些研究并做出了一些更改,如下所示:

  1. 在AndroidManifest.xml中的应用程序标签中添加了android:largeHeap="true"
  2. 已添加

            javaMaxHeapSize "4g" 
    } ```
    in the android/app/build.gradle file.
    
  3. 将以下代码添加到gradle.properties

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

仍然无法消除此错误。任何永久性的方法可以摆脱此错误,以及它是怎么引起的?

2 个答案:

答案 0 :(得分:1)

配置gradle.properties:

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true

答案 1 :(得分:0)

尽管给出的答案对我不起作用,但它确实引导我走向了正确的道路。有时构建会通过,但一段时间后再次出现此错误,以便一劳永逸地解决它:

在项目的 gradle 属性中的第一个注释 org.gradle.jvmargs=-Xmx4096m

在您的 app/build.gradle 中添加以下内容:

android {

  dexOptions {
    javaMaxHeapSize "4g"
  }

}

现在编辑你的全局 gradle.properties for mac 它会在 Home/YOUR_USERNAME/.gradle/ 内

如果文件不存在,只需创建它并添加

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8