一尘不染

使用 Gradle (Android Studio) 构建极长的时间

javascript

现在我们处于构建时间为 2 分 30 秒的情况,非常简单的更改。这(与 ANT 相比)速度非常慢,正在扼杀整个团队的生产力。我正在使用 Android Studio 并使用“使用本地 gradle 分发”。我试图给 gradle 更多的内存:

org.gradle.jvmargs=-Xmx6096m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

更多的记忆。而且它仍然不时地给内存带来错误。

线程“pool-1-thread-1”java.lang.OutOfMemoryError 中的异常:超出 GC 开销限制

惊人。我正在使用并行选项和守护进程:

org.gradle.parallel=true

org.gradle.daemon=true

它真的没有帮助。

我已将上述参数放在 ~/.gradle/gradle.properties 中(我什至怀疑 Android Studio 是否忽略了它,所以我测试了它 - 它没有忽略它)。

仍然从终端我得到 1:30 的构建时间和 2:30 在 Android Studio 中,所以不确定那里有什么问题。与 Ant 相比,1:30 仍然很疯狂。如果您知道 Android Studio 在做什么(或忽略或重写为 gradle 配置),我将不胜感激。

所以只需 CMD + B(简单编译)在更改后超级快,比如 7 秒。但是在运行应用程序时,它会启动任务 dexXxxDebug,这简直是在扼杀我们。我试过把

dexOptions { preDexLibraries = false }

没有帮助。

我知道 gradle 可能还没有为生产环境做好准备,但我开始后悔我们决定这么早迁移到它。我们有很多模块,这可能是问题的一部分,但这不是 Ant 的问题。

任何帮助表示赞赏,丹

有关执行时间的更多信息:

描述 持续时间

Total Build Time    1m36.57s
Startup 0.544s
Settings and BuildSrc   0.026s
Loading Projects    0.027s
Configuring Projects    0.889s
Task Execution  1m36.70s

时间吞噬者::app:dexDebug 1m16.46s


阅读 113

收藏
2022-06-18

共1个答案

一尘不染

我不太清楚为什么 Android Studio 比命令行慢,但是您可以通过打开增量 dexing 来加快构建速度。在模块的构建文件中,将此选项添加到您的android块中:

dexOptions {
    incremental true
}

在该dexOptions块中,您还可以指定 dex 进程的堆大小,例如:

dexOptions {
    incremental true
    javaMaxHeapSize "4g"
}
2022-06-18