簡體   English   中英

運行 gradlew assembleRelease 時出現 memory 錯誤 - react-native

[英]Out of memory error while running gradlew assembleRelease - react-native

在為我的 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. android:largeHeap="true"添加到 AndroidManifest.xml 中的應用程序標簽

  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

我仍然無法擺脫這個錯誤。 擺脫這個錯誤的任何永久方法以及它是如何引起的?

配置 gradle.properties:

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

盡管給出的答案對我不起作用,但它確實引導我走向了正確的道路。 有時構建會通過,但一段時間后又會再次出現此錯誤,因此要一勞永逸地解決它:

首先在項目的 gradle 屬性中注釋org.gradle.jvmargs=-Xmx4096m

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

android {

  dexOptions {
    javaMaxHeapSize "4g"
  }

}

現在編輯你的全局 gradle.properties for mac,它會在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM