【问题标题】:Extremely slow gradle build极慢的gradle构建
【发布时间】:2015-07-03 10:23:10
【问题描述】:

为此采取了以下措施来加快 gradle 构建 (SO post)

  1. org.gradle.parallel=true, org.gradle.daemon=true
  2. 从终端而不是从 android Studio 构建
  3. 使用 ./gradlew assembleDebug --offline 构建

问题:

  1. 即使在采取这些措施之后,单行代码更改的构建时间也可能需要 6-8 分钟!在这段时间里,电脑大部分都死机了,除了盯着终端看之外别无他法。我注意到“app:dexDebug”在这方面需要很多时间。可能的原因是什么?

相关文件:

  1. Terminal build dump
  2. build.gradle(app)
  3. build.gradle(project)

系统详情:

  1. Android Studio 1.2.2
  2. 说明:Ubuntu 14.04.2 LTS

【问题讨论】:

  • 您是否尝试过禁用 lint 检查?
  • 可能取决于系统,在我的工作室中平均只需要 20 - 30 秒。单行代码最多 10 秒
  • @user2217535 我的同行在较慢的计算机上的同一项目上的 Windows 中工作,但在 Windows 中。而且对他来说快了 3 倍。
  • @PedroOliveira 我正在从终端构建。那么棉绒检查完成了吗?如果是这样,我不知道如何禁用它。
  • 如果您使用 proguard,则 dexDebug 可能需要很长时间。如果是这样,请禁用调试版本的 proguard。

标签: android gradle build.gradle android-build gradlew


【解决方案1】:

您可以尝试通过将此代码添加到 build.gradle 来禁用 lint 检查

tasks.whenTaskAdded { task ->
    if (task.name.toLowerCase().contains("lint")) {
        task.enabled = false
    }
}

您还可以使用--profile 参数导出一个 html 报告,说明您的构建时间花费了这么长时间

EDIT:删除调试检查

【讨论】:

  • 现在正在尝试。我将其添加到项目 build.gradle 并使用 --profile 运行。
  • 祝你好运。还将报告添加到原始帖子中,以便其他人可以帮助您:)
  • 感谢个人资料提示!出现了一些丑陋的任务执行时间:app:preDexDebug 3m6.93s :app:dexDebug 44.510s :app:compileDebugJava 28.332s :app:packageDebug 22.577s
  • 你在做一个干净的构建吗?如果是这样,您可以使用preDexLibraries = falsestackoverflow.com/a/21136780/3410697。 proguard/minify 呢?是否启用?
【解决方案2】:

我们遇到了类似的问题:我们的构建大约需要 4 分钟。经过一番研究,我们得到了下一步:

尝试在 Gradle 设置中打开离线工作(Ctrl + Alt + S 用于设置,然后是构建工具 -> Gradle 设置)。通常,我们不会经常更新库,Gradle 不会检查它们是否是最新的。

Multidex 增加了构建时间:Android documentation。为了缓解这种情况,您可以为调试和生产构建添加额外的风格,设置调试构建 minSdk = 21(来自官方网站的建议)。

如果项目中有多个模块,请尝试将它们扁平化为一个或至少提取“库项目”并将其连接为 .aar

因此,我们的构建时间减少到大约一分半钟。希望这些建议也能对您有所帮助。

如果我们要讨论小改动,从 Android Studio 2.0 开始,可以使用 Instant run 和 Incremental build,这使得方法或布局的小改动更快。

【讨论】:

    【解决方案3】:

    另一个原因可能是这样的:

    https://stackoverflow.com/a/50352036/1045941

    解决方法:删除build/android-profile中的文件。

    【讨论】:

      【解决方案4】:

      了解 Gradle Build 与您的 CPU 速度或 RAM 无关。构建在您的 PC 中变慢的原因是由于您的 Internet 连接。构建大约需要大约 100 MB。的数据来完成它的过程。即使您的 Internet 连接速度很快,而您的连接 PING 速度很慢,也需要更多时间。

      【讨论】:

      • 使用离线参数,不再需要互联网。
      猜你喜欢
      • 2016-04-08
      • 2023-03-05
      • 2020-02-23
      • 1970-01-01
      • 2020-11-12
      • 1970-01-01
      • 2017-12-30
      • 2015-06-06
      • 1970-01-01
      相关资源
      最近更新 更多