【发布时间】:2014-07-28 23:43:54
【问题描述】:
现在我们处于构建时间为 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
【问题讨论】:
-
当您从 IDE 进行 Cmd-B 构建时,它不会一直构建到 APK 的完整构建——这就是为什么当您运行时它会慢得多,因为那里它正在制作一个完整的 APK,并且正在制作 dex,这可能需要很长时间。在 adt-dev 邮件列表中查看此线程,该线程讨论构建时间 groups.google.com/forum/#!topic/adt-dev/a-zmpJ6yCuI 并收集在那里讨论的信息并扩充您的问题,看看我们是否可以进一步阐明它。
-
我知道它只是编译源代码,没有构建 dex。但是Ant怎么能在不到20秒的时间内完成这个任务,而我这里需要大约2.5分钟呢?
-
这是一个很好的问题,但如果你能收集到更多信息,我就不必做出这么多错误的猜测了 ;)
-
关于添加到问题的时间的信息。
标签: gradle android-studio