【问题标题】:How to increase maximum heap size for the Gradle daemon?如何增加 Gradle 守护程序的最大堆大小?
【发布时间】:2018-05-07 08:18:39
【问题描述】:

签署 apk 时,我收到以下消息:

To run dex in process, the Gradle daemon needs a larger heap.
It currently has 1024 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to at least 4608 MB (based on the dexOptions.javaMaxHeapSize = 4g).
To do this set org.gradle.jvmargs=-Xmx4608M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html

在我的项目中,我没有 gradle.properties 文件,但我有一个名为 gradle-wrapper.properties 的文件。

我打开了那个文件并添加了org.gradle.jvmargs=-Xmx4608M这一行。

之后,我尝试再次签署 apk,但我仍然收到增加 Gradle 堆大小的消息。

如何实现?

【问题讨论】:

标签: android gradle android-gradle-plugin


【解决方案1】:

如果您没有gradle.properties,则转到您的项目文件夹,您将在其中找到 gradle 文件,创建一个文本文件并将其命名为 gradle.properties 删除 .txt,然后将以下代码添加到该文件中。

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx4096m

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

并保存它,然后在 Android Studio 中打开您的项目并单击“立即同步”。

我希望它能解决您的问题,如果没有,请告诉我。

【讨论】:

  • 如果你已经在android文件夹中有gradle.properties文件添加这一行org.gradle.jvmargs=-Xmx4096m
【解决方案2】:

我知道你说你的项目没有gradle.properties,但你可以在C:\Users\user\.gradle 中创建一个全局的并添加:

 org.gradle.jvmargs=-Xmx4096M

记得运行gradle --stop 来杀死任何以前的守护进程。

【讨论】:

  • 我试过这个无济于事。我什至创建了命令行变量 GRADLE_USER_HOME=C:\Users\\.gradle。我也试过把它放在我的平台/andorid/gradle.properties 但它继续使用 2048MB
【解决方案3】:

您可以尝试以下任何一种方法

1) 更改 gradle.properties 文件并根据您的要求更改堆大小。

如果 org.gradle.jvmargs=-Xmx2048M 还不够,则按照给定的方式更改为 4096

org.gradle.jvmargs=-Xmx4096M

2)“帮助”菜单中的“编辑自定义 VM 选项”。

它将打开 studio.vmoptions / studio64.exe.vmoptions 文件

将内容改为

-Xms128m

-Xmx4096m

-XX:MaxPermSize=1024m

-XX:ReservedCodeCacheSize=200m

-XX:+UseCompressedOops

保存文件并重启 Android Studio。

【讨论】:

    【解决方案4】:

    试试这个link答案

    dexOptions 
       {
           javaMaxHeapSize "4g"
       }
    ....
    ....
    ....
    

    【讨论】:

      【解决方案5】:

      将以下代码添加到您的 build.gradle 文件中。

       android {
           dexOptions {
           incremental true       
           javaMaxHeapSize "4g"
            }
          }
      

      参考:Source

      【讨论】:

      • 这与消息告诉我们做的不一样。也许你的方式是旧方式?
      • 我还注意到我目前添加了该行,dexOptions { javaMaxHeapSize "4g" }
      • 所以这不是解决方案,因为我收到了这条信息
      • @VishvaDave 我已经添加了源链接。检查那个。有这么多问题有相同的代码,并不意味着代码被复制。甚至几乎所有开发人员在所有应用程序开发中都使用此代码 sn-p 来解决命中大小问题。
      • @SamirBhatt 其实这个问题是重复的。你应该在评论中给出可能的链接。避免回答这类重复的问题。
      猜你喜欢
      • 1970-01-01
      • 2022-09-24
      • 2016-09-09
      • 2014-02-02
      • 2013-01-01
      • 2012-07-01
      • 2021-09-28
      • 2016-04-23
      相关资源
      最近更新 更多