我在尝试编译应用程序的发布版本时遇到了 Githubs 操作运行程序的问题。我的应用程序有 8 种不同的风格,我们在 Play 商店上构建和提供,几个月前,我能够使用 Github Actions 在一个跑步者上同时构建多达 3 种风格。如果我们尝试一次执行超过 3 种风格,大约 15 分钟后,构建将失败并显示
FAILURE: Build failed with an exception.
* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)
Gradle 日志除了指出当时正在运行哪个任务之外,并没有真正的帮助(minify r8)
当我继承这个代码库时,我发现我们将 jvm 参数中的最大堆大小设置为 6 GB,如果我完全降低该值,则在 r8 运行时最终会出现内存不足错误。对我来说,r8 会占用这么多内存,这似乎有点疯狂,而且最重要的是,github 托管的运行程序只有 7 GB 的 RAM 可供使用。因此,如果我们将 r8 在 gradle 守护进程中使用的内容结合起来,并且知道 kotlin 守护进程也在运行,我认为运行程序正在终止 gradle 守护进程的内存使用,或者它因内存不足而死亡。
自从我们添加 Jetpack Compose 库以来,我们现在无法一次构建超过一种风格的应用程序,而且我担心由于 r8 造成的内存占用而失去在 github 运行器上构建的能力。
这就是我当前的 gradle.properties 的样子:
org.gradle.jvmargs=-Xms1024m -Xmx6144m -XX:-UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError …
android gradle android-gradle-plugin android-r8 android-jetpack-compose