我刚刚将 Android Studio 升级到 3.5 Beta 1 版本,但在构建运行时出现以下信息:
由于 JVM 堆空间耗尽而终止守护程序
此外,构建所需的时间也更长了。请问有人知道这是什么原因吗?
我刚刚将 Android Studio 升级到 3.5 Beta 1 版本,但在构建运行时出现以下信息:
由于 JVM 堆空间耗尽而终止守护程序
此外,构建所需的时间也更长了。请问有人知道这是什么原因吗?
通过增加项目配置的最大堆大小来解决此问题。
通过IDE:
将以下行添加到gradle.properties文件中。下面的内存大小(1)可以根据可用RAM进行配置。
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m
通过 GUI:
在设置中搜索“内存设置”,根据系统的 RAM 可用性增加 IDE 最大堆大小 和 Daemon 最大堆大小。
(1)
$ man java
...
-Xmxsize
Specifies the maximum size (in bytes) of the memory allocation pool in bytes. This value
must be a multiple of 1024 and greater than 2 MB. Append the letter k or K to indicate
kilobytes, m or M to indicate megabytes, g or G to indicate gigabytes. The default value
is chosen at runtime based on system configuration. For server deployments, -Xms and
-Xmx are often set to the same value. See the section "Ergonomics" in Java SE HotSpot
Virtual Machine Garbage Collection Tuning Guide at
http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html.
The following examples show how to set the maximum allowed size of allocated memory to
80 MB using various units:
-Xmx83886080
-Xmx81920k
-Xmx80m
The -Xmx option is equivalent to -XX:MaxHeapSize.
...
我能够通过以下配置解决我的 React Native 项目问题:
1. gradle.properties
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
2. 应用程序/build.gradle
android {
dexOptions {
javaMaxHeapSize "3g"
}
}
react-native link
,重新安装,react-native-vector-icons
就会再次正常工作。 - romin21org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
让我解释一些基本术语,以理解整个过程。 守护进程(Daemon):是一种计算机程序,以后台进程的形式运行,而不是在交互式用户的直接控制下。 Android Studio 2.1 启用了一个新功能:Dex In Process,它可以极大地提高全面清除构建的速度,同时改善即时运行性能。我们为什么这样做以及它如何帮助?
org.gradle.jvmargs=-Xmx2048m
默认值:
-Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
如果仍然无法解决问题,抱歉我不知道如何修复。 - Kailash Uniyalandroid/gradle.properties
中取消注释org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
,效果非常好。谢谢!@KailashUniyal - Vikas Bansal使用gradle选项平衡内存消耗和构建速度。例如:
Android Studio 2022.1.1(PC RAM 16GB)
Gradle v7.3.3(./gradle/wrapper/gradle-wrapper.properties)
AGP v7.2.0(./build.gradle)
com.android.tools.build:gradle:7.2.0
缓存修复 Gradle 插件
org.gradle.android.cache-fix:org.gradle.android.cache-fix.gradle.plugin:2.5.3
这个Google服务依赖版本支持Gradle配置缓存
com.google.gms:google-services:4.3.5
./gradle.properties
android.enableJetifier=true
android.jetifier.ignorelist=bcprov-jdk15on
android.useAndroidX=true
kapt.incremental.apt=true
kapt.use.worker.api=true
kotlin.daemon.jvm.options=-Xms1g -Xmx4g
manifestmerger.enabled=true
org.gradle.caching=true
org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.jvmargs=-XX:InitialHeapSize=1g -XX:MaxHeapSize=6g -XX:MaxPermSize=2g -XX:MaxMetaspaceSize=2g -XX:NewSize=1g -XX:MaxNewSize=2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.unsafe.configuration-cache=true
org.gradle.unsafe.configuration-cache-problems=warn
有用的链接:
gradlew --no-daemon
。org.gradle.launcher.daemon.bootstrap.GradleDaemon someVersion
的守护进程。重新加载所有Gradle项目
后,它将成功构建。gradle.properties
文件中:org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8
-Xmx3072m
或-Xmx4096m
来分别设置3GB或4GB。