如何解决Android Studio在执行Gradle任务时卡住的问题?


78

当我尝试构建/运行项目以及清理项目时,Android Studio(Beta)0.8.6卡住了。它保持响应状态,但是“ Gradle:执行任务”消息没有消失(我放弃时超过20分钟),并且该应用程序永远不会运行。

这是我尝试的:

  • 使缓存无效/重启

  • 强制退出并重新启动

  • 从应用程序(在Mac上)中将其删除,然后从官方网站重新下载。

在此处输入图片说明


2
试试这个,退出Studio,打开终端,运行./gradlew tasks --debug
bhargavg 2014年

@bhargavg我尝试过,它说-bash: ./gradlew: Permission denied
Oleksiy

@bhargavg转到/path/to/sdk/tools运行sudo chmod 777 gradlewsudo chmod 777 *然后再次运行命令
Hosseini

Answers:


61

通过转到Android Studio-> Preferences-> Gradle->并勾选来修复此问题Offline work。仍然不知道出了什么问题,但至少现在可以编译了。

编辑:在新的Android Studio版本中,路径为File-> Other Settings-> Default Settings-> Build-Excecution-Deployment->Gradle


仍然很慢,差不多一分钟。
弗拉多·潘迪奇(VladoPandžić)

11
该答案应进行更新。File-> Settings-> Build-Excecution-Deployment-> Gradle是正确的位置。
The_Martian'3

无法在任何地方找到gradle选项-文件->设置->构建执行部署-> Gradle和Android Studio->首选项-> Gradle
Narendra Singh,

7
File-> Settings-> Build-Excecution-Deployment BuildTools->-> Gradle
RTF

我的问题不同,请参阅我的答案。
nurettin

50

这个问题似乎很老,但是万一有人需要的话。

全新安装Ubuntu 14.04之后,我最近才遇到此问题。谷歌一段时间没有运气后,我检查了终端,事实证明那libz.so.1是丢失的。所以我安装了它,就像魅力一样。

在此处安装说明: libz.so.1:无法打开共享库文件


3
自2016年1月起,这是必需的解决方案。对于那些不想访问该链接的懒惰者:sudo apt-get install zlib1g:i386
grasskode,2016年

经过大量实验,此方法有效。这是工作的答案...谢谢
Nidhin David

Mac OS X呢?我有zlib,并且有相同的问题。
Makalele '16

在尝试了许多解决方案两天后,终于成功了。万分感谢!
brainbreaker

1
这适用于ubuntu 16.06(安装lib32z1)。android studio中的Gradle控制台实际上提供了libz丢失的信息,这是检查gradle问题的好地方。
HYS


2

您必须向文件添加执行模式:AndroidStudioProjects / YourProjectName / gradlew,以便Android Studio可以执行它。如果您在Linux机器上,请使用以下命令:chmod + x gradlew来运行此命令,您可能需要具有管理权限。在Ubuntu中,您可以使用sudo chmod + x gradlew来完成该操作


2

发生这种情况的原因可能很多。因此,这里有一些步骤可以帮助您找出原因,而不是给出确切的解决方法。

  1. 从命令行运行gradle命令。它仍然失败吗?

    $ ./gradlew myTask

  2. 如果是这样,请使用调试标志重新运行。任何有用的信息?

    $ ./gradlew myTask --debug

  3. 如果只是挂起,请尝试获取堆栈跟踪。在转储文件中搜索myTask

    $ jps -mv | grep Gradle  <--- be sure to use capital "G"
    2290 GradleDaemon 3.3 -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Xmx2304M -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant
    $ jstack -l 2290 >> dump.txt <--- your process ID will be different
    
  4. 如果仅在运行Android Studio时挂起,请为Android Studio生成线程转储,在此处了解更多信息


1

在我看来,gradle在64位Ubuntu 16.04上缺少32位库。这样做sudo apt-get install libstdc++6:i386解决了问题。


1

在将Google Play API添加到依赖项{}之后,这发生在我身上。./gradlew app:assembleDebug出现一个错误,说出类似Dex ID limit reached use multi-dex.我在此处所述进行设置的内容,因此我决定删除我最近添加的依赖项,问题不再存在。

Google还建议使用proguard作为优化同一文档中Dex ID数量的技术。


1

对于GNU / Linux用户:

我将SDK从另一个存储设备复制到了我的主目录。然后我开始存货gradle build running。问题是SDK文件的权限。观看gradle控制台日志,如果看到一些权限被拒绝的东西,请执行以下操作-通过此命令为所有文件授予执行权限:

chmod -R +x /path/to/android-sdk


1

经过大量的努力并遵循上面(和类似文章中)发布的所有解决方案,我终于发现我PC上的问题是防病毒应用程序。我禁用了它,并且gradle刷新并快速构建,就像问题开始之前一样。

看来我的防病毒软件最近开始阻止gradle从Internet更新/下载必要的信息,这就是导致加载和刷新项目的延迟和最终超时的原因。禁用防病毒软件可以每次更正该问题。


同样在这里。挣扎于这篇文章的解决方案,没有任何效果。幸运的是,偶然发现了这个答案。我公司的笔记本电脑已安装了McAfee,我必须禁用其某些过程以使Gradle完成构建过程。
鲍里斯·吉特林

0

我在virtualbox 5.0.16虚拟机上安装了centos 7 64位,并在Android Studio 2.0中安装了gradle 2.10版

gradle的日志文件位于$HOME/.gradle/daemon/2.10 日志文件中:daemon-<some number>.out.log

通过检查此日志文件,我发现libz.so.1aapt找不到该文件。

尽管有该命令“ locate libz.so.1”,输出仍

/usr/lib64/libz.so
/usr/lib64/libz.so.1
/usr/lib64/libz.so.1.2.7

aapt无法找到它。

为了解决这个问题,我不得不执行

yum install zlib.i686

之后,Gradle开始发挥魅力。祝好运!


0

我有类似的东西。

当我从命令运行gradle时会抛出此异常

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDevDebugJavaWithJavac'.

在这条线等了25分钟后

:app:compileDevDebugJavaWithJavac

原来,这与我使用的android注释有关。我更换了

@UiThread 

我曾经与

activity.runOnUiThread(new Runnable(...

并且它开始编译就好了。这很奇怪,因为我在代码的许多其他地方都使用了@UiThread注释。


0

就我而言,我是通过Gradle Builder(Android Studio 2.2,Windows 10)收到此错误的

java.lang.RuntimeException:等待从属Aapt进程时超时,请尝试将环境变量设置SLAVE_AAPT_TIMEOUT为大于5秒的值

解决方案是将变量SLAVE_AAPT_TIMEOUT添加到我的Windows环境中,并将其设置为30


0

我遇到了同样的问题,解决了在系统变量中将变量SLAVE_AAPT_TIMEOUT设置为值30。


0

我在Windows上,遇到了同样的问题。

对我来说,gradlew可执行文件以某种方式被删除,不知道如何删除。我在Canary上,之前遇到过这个问题。

在Android Studio的终端窗口中,键入gradlew,如果丢失,它将重新下载并安装。(我的旧解决方案是完全重新安装Android Studio,因此更容易)


0

即使使用新的标准项目,我也遇到同样的问题(Ubuntu 16.04)。问题出在Gradle的第三方依赖中。查看文件:
〜/ .gradle / init.gradle
它可能包含Gradle无法加载的其他依赖项。您可以看到无法在控制台中加载的内容:
./gradlew --debug


0

如果您使用领域库并使用RealmStudio或RealmBrowser打开文件.realm,请确保执行删除文件.realm / lock和文件夹.realm.management。


0

我认为java.exe是这个问题的原因。只需手动杀死该应用程序并尝试。使用Android Studio 3.0.1确实对我有用。


0

就我而言,它被卡住是mergeDebugResources因为我不小心\\'在字符串中使用了双转义的单引号。Android Studio不会将其标记为错误,而是会卡住!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.