卡在Gradle构建运行中

55
在尝试在Ubuntu 16.04上构建我的应用程序时,使用Android Studio 2.1,它卡在以下提示上:
Executing tasks: [:app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:generateDebugAndroidTestSources]

有人能帮我吗?


虽然我的问题不完全相同(我遇到了无限的“Starting gradle daemon…”循环),但是这个对我有用。 - Ace
9个回答

100

实际上它没有卡住,只是需要更多时间来构建。我已经得到了近3个可以解决这个问题的方案。

方案1:

按照以下步骤操作可以使其快10倍,并将构建时间缩短90%。

首先在以下目录中创建一个名为gradle.properties的文件:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

在文件中添加这行内容:

org.gradle.daemon=true

org.gradle.parallel=true

解决方案-2:

如果Android Studio有代理服务器设置并且无法连接到服务器,则构建需要很长时间,可能会尝试连接代理服务器并等待超时。当我删除代理服务器设置后,它可以正常工作。

在Android Studio中进入文件->设置->构建、执行、部署->构建工具->Gradle

'全局Gradle设置'下勾选'离线工作'

这将减少90%的gradle构建时间。


解决方案-3:

如果您正在使用Google Play服务,请确保您没有在Gradle构建脚本中使用以下内容:

compile 'com.google.android.gms:play-services:8.3.0'

只使用你的应用程序真正需要的谷歌API。如果你只是在使用Google地图,你可以使用以下内容:

Only use those Google APIs that your app is really using. If all you are using is Google Maps, you would use this:


com.google.android.gms:play-services-maps:8.3.0

当我这样做时,我的编译时间从超过2分钟缩短到了大约25秒。有关您可以选择性地进行编译的Google API列表,请参见:

https://developers.google.com/android/guides/setup

资源链接:

  1. Android Studio gradle takes too long to build
  2. 讨论卡在gradle构建中的问题

解决方案#4:

Arun George已经评论了以下解决方案。

问题是由于某些32位库缺失造成的。必须执行 sudo apt-get install lib32z1。将其添加到gradle.properties有助于缩短构建时间。


3
我认为问题是由于缺少某些32位库引起的。 必须运行 sudo apt-get install lib32z1 命令进行安装。将其添加到gradle.properties有助于缩短构建时间。谢谢:) - Arun George
org.gradle.parallel=true 应该只用于非耦合项目(即不共享对象的项目)。您可以在此处阅读更多信息:https://docs.gradle.org/current/userguide/multi_project_builds.html#sec:decoupled_projects - qwlice
我有同样的问题 http://stackoverflow.com/questions/41502164/android-studio-2-2-3-gradle-build-running-stuck - Aditya Vyas-Lakhan
3
对我来说,方案1使构建速度快了20倍! - Swindler
在Solution-1中,这是一个文本文件,您将其保存为“gradle.properties”吗? - 101is5

7

对我而言,改变buildToolsVersion是解决方案。


这是真正的解决方案。有时候问题并没有被 build.gradle 文件中经常出现的警告所捕捉到。谢谢! - SMBiggs
详细说明:点击项目选项卡(左上角)>右键单击“app”文件夹>单击“打开模块设置”>模块>属性>选择“编译SDK版本”的版本和“构建工具版本”的版本。 来源:https://www.py4u.net/discuss/646549 有人尝试只为“构建工具版本”选择一个版本吗? - 101is5

7

问题在于项目与gradle文件未同步。我解决的方法是进入文件 > 与Gradle文件同步项目,然后它就能够同步了。


4

我尝试了所有的解决方案,但都没有起作用。所以我只是重新启动了我的电脑,现在它能够正常工作了。你也可以试试看。


3

对于我的情况,我需要安装gcc-multilib

$ sudo apt-get install gcc-multilib

请检查底部右侧的Gradle控制台,因为它具有比事件日志更多的输出。


1

您可能在代理后面,您最近可能已更改了密码或发生了其他变化。请前往

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

在 gradle.properties 文件中,删除/更改代理设置。它们与您的 Android Studio 代理设置不同。
我遇到了同样的问题,gradle 以前需要一个小时才能构建。在我从 gragle.properties 文件中删除代理设置后,现在只需要几秒钟。

这对我有用。事实证明,即使我在Android Studio中将代理设置为“无代理”,gradle.proerties文件仍然包含代理条目。 - F0r3v3r-A-N00b
我找不到gradle.properties文件。它应该在.gradle文件夹中,还是在任何子文件夹中,或者我需要创建它?如果我需要创建它,我该如何操作? - 101is5

0

在 @SkyWalker 的回答上加一点:

同时检查你是否拥有最新版本的gradle。将 gradle 插件 更新至最新版本可能会有所帮助。

注意:我有一个类似的设置(在Ubuntu 16.04上使用Android Studio 2.1),我也遇到了类似的问题。将gradle更新到最新版本解决了我的问题。


0

解决 Android Studio 4.2.2 版本中 Gradle 卡顿的问题:

当资源成功下载后,应该使用“无效缓存并重启”重新启动 Android Studio,并在平台工具索引之前激活离线 Gradle 模式。


0

也许这不是一个好的方法,但是使用 sudo nice --17 IDE名称 启动工作室对我来说似乎是有效的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接