android - 如何在 gradle 中为 dex 内存调整 jvm args?

标签 android jvm gradle

我有一个 Android 项目在 dex 步骤中当前堆空间不足:

 :app:dexXXXXX Exception in thread "pool-1-thread-4"  java.lang.OutOfMemoryError: Java heap space

我想提高 gradle 中的 jvm min/max 设置,就像我们过去对 Maven 插件所做的那样:

      <groupId>com.jayway.maven.plugins.android.generation2</groupId>
      <artifactId>android-maven-plugin</artifactId>
      <version>3.6.0</version>
      <extensions>true</extensions>
      <configuration>
        <sdk>
          <platform>${android.platform}</platform>
        </sdk>
        <undeployBeforeDeploy>true</undeployBeforeDeploy>
        <dex>
          <jvmArguments>
              <jvmArgument>-Xms1024m</jvmArgument>
              <jvmArgument>-Xmx2048m</jvmArgument>
          </jvmArguments>
        </dex>

但在 gradle 中的 android 插件的文档中,我只看到这些选项:

   android {
    dexOptions {
        incremental false
        preDexLibraries = false
        jumboMode = false
    }
   }

有办法吗?有一个 gradle.properties 文件,但似乎只是为 gradle 本身提供了 jvmargs。

最佳答案

有一个未记录的 dexOptions 标志。

dexOptions { javaMaxHeapSize "2g" }

我从 google 群组帖子中找到了该标志。 https://groups.google.com/forum/#!topic/adt-dev/P_TLBTyFWVY

关于android - 如何在 gradle 中为 dex 内存调整 jvm args?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23688116/

相关文章:

java - 必须单击两次才能获取上一个数组元素

java - 如何从 getView 设置正确 SeekBar 的进度?

java - 在UWP C++应用程序内部生成JVM时崩溃

batch-file - 为什么当我使用 "unrecognized option"时 jvm 会抛出 "-d64"?

java - 如何在Artifactory中添加一些非开源jar,以便可以由另一个Gradle/Maven项目提取它们

android - 无法解决 'This version of the Android Support plugin for IntelliJ IDEA cannot open this project, please retry with version 4.1 or newer.'

java - TextView 的 Android 自定义属性

android - 应用程序已关闭,但音乐仍在播放

java - 将正确的JVM参数传递给Heroku上的Play 2.2.1应用

spring-boot - gradle: Task :jar SKIPPED 当我使用 gradlew build 获取 jar 时