如何修复Android Studio卡住执行Gradle任务?

时间:2014-09-02 17:50:10

标签: android android-studio

当我尝试构建/运行项目以及清理它时,Android Studio(Beta)0.8.6卡住了。它保持响应,但Gradle:Executing Tasks消息不会消失(我放弃的时间超过20分钟),应用程序永远不会运行。

这就是我的尝试:

  • 使缓存无效/重新启动

  • 强制退出并重新启动

  • 从应用程序中删除它(在Mac上)并从官方网站重新下载。

enter image description here

18 个答案:

答案 0 :(得分:60)

通过转到Android Studio - >修正了它Preferences - > Gradle - >并勾选Offline work。仍然不知道出了什么问题,但至少现在它已经编译好了。

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

答案 1 :(得分:50)

这个问题看起来很旧,但万一需要它。

我刚刚在新的Ubuntu 14.04安装之后遇到了这个问题。 谷歌一段时间没有运气我检查了终端,结果发现libz.so.1丢失了。所以我安装它,像魅力一样工作。

在这里安装说明: libz.so.1: cannot open shared object file

答案 2 :(得分:5)

启用设置中的离线工作

enter image description here

答案 3 :(得分:2)

您必须将执行模式添加到文件:AndroidStudioProjects / YourProjectName / gradlew,以便Android Studio可以执行它。 如果你在Linux机器上使用这个命令:chmod + x gradlew 要运行此命令,您可能需要具有管理权限。在Ubuntu中你可以使用sudo chmod + x gradlew来做到这一点

答案 4 :(得分:1)

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

答案 5 :(得分:1)

将google play api添加到依赖项{}后发生了这种情况。 ./gradlew app:assembleDebug显示了Dex ID limit reached use multi-dex.之类的错误,就像我按照here所述进行设置一样,我决定删除我最近添加的依赖项,问题就消失了。

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

答案 6 :(得分:1)

对于GNU / Linux用户:

我将SDK从另一个存储复制到我的主目录。然后我得到了股票gradle build running。问题是SDK文件的权限。观察gradle控制台日志,如果你看到一些权限被删除的东西,那么执行以下操作 - 通过此命令授予所有文件执行权限:

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

答案 7 :(得分:1)

这可能由于很多原因而发生。因此,不是给出一个确切的解决方案,这里有一些步骤可以帮助找出原因。

  1. 从命令行运行gradle命令。它还会失败吗?

    $ ./gradlew myTask

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

    $ ./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 read more here生成线程转储。

答案 8 :(得分:1)

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

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

我认为java.exe就是这个问题的原因。只需手动终止此应用程序并尝试。它真的适合我使用Android studio 3.0.1。

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

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

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

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

答案 14 :(得分:0)

我遇到了同样的问题并解决了系统变量中设置变量SLAVE_AAPT_TIMEOUT的问题,其值为30.

答案 15 :(得分:0)

在我的情况下,Gradle Builder(Android Studio 2.2,Windows 10)

我收到了此错误
  

java.lang.RuntimeException:在等待奴隶进程过程中超时,尝试将环境变量SLAVE_AAPT_TIMEOUT设置为大于 5秒的值

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

答案 16 :(得分:0)

我有类似的东西。

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

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

在这条线上等了25分钟之后

:app:compileDevDebugJavaWithJavac

结果与我使用的android annotations有关。我替换了

@UiThread 

我正在使用

activity.runOnUiThread(new Runnable(...

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

答案 17 :(得分: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

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

尽管命令“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开始成为一个魅力。 祝你好运!