我刚刚将Android Studio更新为3.5 Beta 1,
守护进程到期,因为JVM堆空间已耗尽
运行构建时出现此消息。另外,构建需要花费更多时间才能完成。有人对此有任何想法吗?
我刚刚将Android Studio更新为3.5 Beta 1,
守护进程到期,因为JVM堆空间已耗尽
运行构建时出现此消息。另外,构建需要花费更多时间才能完成。有人对此有任何想法吗?
Answers:
通过配置以下内容,我能够为我的React Native项目解决此问题:
// gradle.properties
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
和
// app/build.gradle
android {
dexOptions {
javaMaxHeapSize "3g"
}
}
解决方案是增加Android构建内存。
当您向应用程序添加更多模块时,Android构建系统上的需求令人难以置信,并且默认内存设置将不起作用。为了避免OutOfMemoryError异常期间的Android建立,则应该取消注释的gradle交替内存设置存在于/android/gradle.properties:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
您可以在android文件夹中找到gradle.properties 。
聚苯乙烯
我们正在做什么以及为什么有帮助?
让我清除一些基本术语,以了解整个内容。
守护程序:-守护程序是作为后台进程运行的计算机程序,而不是在交互式用户的直接控制下运行的程序。
Android Studio 2.1启用了一项新功能:Dex In Process,它可以大大提高完全清理构建的速度,并提高Instant Run性能。
要利用Dex In Process的优势,您需要使用org.gradle.jvmargs属性修改gradle.properties文件,并将分配给Gradle Daemon VM的内存量增加1 Gb,最少增加2 Gb。 :
指定用于守护进程的JVM参数。该设置对于调整内存设置特别有用。
org.gradle.jvmargs=-Xmx2048m
默认值:
-Xmx10248m -XX:MaxPermSize=256m
Gradle Daemon VM的默认内存分配为1 GB,这不足以支持dexInProcess,因此要利用这一点,您需要将其设置为至少2 GB。
进程中的Dex通过允许多个DEX进程在与Gradle共享的单个VM中运行来工作,这就是为什么您需要在启用额外内存之前分配额外的内存-该内存将在Gradle和多个DEX进程之间共享。
如果将模块级build.gradle文件中的javaMaxHeapSize增加到默认值1 GB以上,则需要相应地增加分配给Gradle守护程序的内存。
如果有足够的内存分配,默认情况下会启用“进程中的Dex”,从而提高整体构建性能并消除启动多个并行VM实例的开销。结果是所有构建时间都得到了显着改善,包括即时运行,增量构建和完整构建。
来源:https : //medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
放在gradle.properties中。如果仍然无法正常工作,那么抱歉,我不知道该如何解决。
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
在android/gradle.properties
工作的lika中不加评论的魅力。谢谢!!@KailashUniyal