我在为我的 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)
做了一些研究并做了一些更改,如下:
在 AndroidManifest.xml 中的应用程序标记中添加了
android:largeHeap="true"
已添加
dexOptions {
javaMaxHeapSize "4g"
}
在 android/app/build.gradle 文件中。
将以下代码添加到gradle.properties
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
我仍然无法摆脱这个错误。有什么永久的方法可以消除这个错误,它是如何引起的??
配置gradle.properties:
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
虽然给出的答案对我不起作用,但它确实引导我走上了正确的道路。有时构建会完成,但一段时间后此错误又会重新出现,因此要一劳永逸地解决它:
第一个评论
org.gradle.jvmargs=-Xmx4096m
在项目的 gradle 属性中。
在您的 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
这对我有用!
在 android/gradle.properties 中取消注释此行
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
信用@Alex Aymkin
在 android/gradle.properties 中添加此代码对我有用!
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
我已经在 gradle.properties 中有以下行:
org.gradle.jvmargs=-Xmx4096M -XX:MaxMetaspaceSize=512m
将 512m 值更改为 4g 解决了我的问题。
OutOfMemoryError