你好,我们有一个包含30个产品风味的项目,我尝试使用Jenkins进行构建。由于我们升级(用于Android Studio3)到以下版本:
- Gradle 3.0.0
- Build Tools 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内存(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 我不知道如何设置这些子进程(Android工具)的JVM选项。
也许这是Gradle守护程序中的所有内存泄漏。在我的前20个productFlavors的构建中,头部约为2G,然后增加到3G,而Gradle守护程序jvm一直在进行GC...
有任何想法或建议吗?
问候