运行 gradlew 汇编时出现内存不足错误Release - react-native

我在为我的react原生项目进行发布构建时遇到此错误:

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 中的应用程序标记.xmlandroid:largeHeap="true"

  2. 添加

    dexOptions {
        javaMaxHeapSize "4g" 
    }
    

    在 android/app/build.gradle 文件中。

  3. 将以下代码添加到 gradle.properties

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

我仍然无法摆脱此错误。任何永久的方法来摆脱这个错误,它是如何引起的??


答案 1

配置 gradle.properties:

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

答案 2

虽然给出的答案对我不起作用,但它确实引导我走上了正确的道路。有时构建会完成,但一段时间后,此错误会再次浮出水面,因此要一劳永逸地解决它:

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

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

android {

  dexOptions {
    javaMaxHeapSize "4g"
  }

}

现在编辑mac的全局gradle.properties,它将在Home/YOUR_USERNAME/.gradle/请注意,.gradle是一个隐藏的文件夹。

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

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

推荐