现在我们处于构建时间为 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
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
我不太清楚为什么 Android Studio 比命令行慢,但是您可以通过打开增量 dexing 来加快构建速度。在模块的构建文件中,将此选项添加到您的android块中:
android
dexOptions { incremental true }
在该dexOptions块中,您还可以指定 dex 进程的堆大小,例如:
dexOptions
dexOptions { incremental true javaMaxHeapSize "4g" }