Android Build Tools 26.0.2 out of Memory(lint)

时间:2017-10-27 08:31:20

标签: android jenkins jvm

您好我们有一个包含30个productFlavors的项目,我尝试用jenkins构建。 由于我们将(针对Android Studio3)更新为: - gradle 3.0.0 - 构建工具26.0.2

我们在Lint中得到一个内存不足的例外:

   :app:lintUnexpected failure during lint analysis of null (this is a bug in lint or one of the libraries it depends on)
    `OutOfMemoryError:ByteStreams.toByteArray(ByteStreams.java:176)
Files.readFile(Files.java:182)←Files$FileByteSource.read(Files.java:153)
Files.toByteArray(Files.java:252)←LintClient.readBytes(LintClient.kt:249)
ClassEntry.addEntries(ClassEntry.java:216)
ClassEntry.fromClassPath(ClassEntry.java:120)
LintClient.createSuperClassMap(LintClient.kt:997)`

    You can set environment variable `LINT_PRINT_STACKTRACE=true` to dump a full stacktrace to stdout. java.lang.OutOfMemoryError: Java heap space  at 
    com.google.common.io.ByteStreams.toByteArray(ByteStreams.java:176)  at 
    com.google.common.io.Files.readFile(Files.java:182)     at 
    com.google.common.io.Files$FileByteSource.read(Files.java:153)  at 
    com.google.common.io.Files.toByteArray(Files.java:252)  at 
    com.android.tools.lint.client.api.LintClient.readBytes(LintClient.kt:249)

我增加了Gradle Memory(gradle.properties org.gradle.jvmargs = -Xmx3098M)但没有成功。

所有productFlavors都具有相同的java代码。结果apk具有不同的图像,包名称,语言和配置。

25个productFlavors的构建运行直到我们内存不足。 使用ps命令,我看到Gradle Daemon的客户端进程的JVM选项,如: java -Djava.awt.headless = true -Xmx64M com.google.devtools.build.android.desugar.Desugar 我不知道如何设置此子进程处理的JVM选项(Android工具)

可能是gradle守护程序中的内存泄漏。 我在我的productFlavors的第一个20版本中观察到头部大约是2G而且它增加到3G并且gradle deamon jvm一直在做GC ...

有任何想法或建议吗?

此致

1 个答案:

答案 0 :(得分:1)

我和你一样。升级后的android gradle(到3.0.0)&构建工具(到26.0.2),我在Jenkins中使用我的奴隶ubuntu机器上的gradle构建时面临内存不足错误(但是在任务transformClassesWithDexBuilderForRelease时)。同时,我将gradle的版本从3.5升级到4.3.0。由于我的代码没有改变,我认为有一个问题可能导致其中一个更新中的内存泄漏。

以下是解决方法:

export _JAVA_OPTIONS="-Xms2048m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC" 
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"

(简称:https://stackoverflow.com/a/18900271/5663292& https://stackoverflow.com/a/35964827/5663292

修改

经过几次构建后,即使我将内存增加到14gb,我也会出现相同的错误:)但我通过在gradle.properties文件中添加一行来解决问题:

org.gradle.jvmargs=-Xmx4096m