当我尝试构建/运行项目以及清理它时,Android Studio (Beta) 0.8.6 卡住了。它保持响应,但 Gradle: Executing Tasks 消息不会消失(超过 20 分钟是我放弃的时候),并且应用程序永远不会运行。
这是我尝试的:
使缓存无效/重新启动
强制退出并重新启动
从应用程序中删除它(在 Mac 上)并从官方网站重新下载。
https://i.stack.imgur.com/r70AL.png
./gradlew tasks --debug
-bash: ./gradlew: Permission denied
/path/to/sdk/tools
并运行 sudo chmod 777 gradlew
或 sudo chmod 777 *
然后再次运行命令
通过转到 Android Studio
-> 修复它Preferences
-> Gradle
->并勾选 Offline work
。仍然不知道出了什么问题,但至少现在它可以编译了。
编辑:在新的 Android Studio 版本中,路径是 File
-> Other Settings
-> Default Settings
-> Build-Excecution-Deployment
-> Gradle
这个问题似乎很老,但以防万一有人需要。
在全新安装 Ubuntu 14.04 之后,我最近遇到了这个问题。在谷歌一段时间后没有运气,我检查了终端,结果发现 libz.so.1
丢失了。所以我安装了它,像魅力一样工作。
此处安装说明:libz.so.1: cannot open shared object file
从设置启用离线工作
https://i.stack.imgur.com/FD306.png
发生这种情况的原因有很多。因此,这里没有给出确切的修复方法,而是采取一些步骤来帮助隔离原因。
从命令行运行 gradle 命令。它仍然失败吗? $ ./gradlew myTask 如果是这样,使用调试标志重新运行。有什么有用的信息吗? $ ./gradlew myTask --debug 如果它只是挂起,尝试获取堆栈跟踪。在转储文件中搜索 myTask $ jps -mv | grep Gradle <--- 一定要使用大写“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 <--- 你的进程 ID 会不同如果它只是在运行 Android Studio 时挂起,为 Android Studio 生成线程转储阅读更多here。
您必须在文件中添加执行模式:AndroidStudioProjects/YourProjectName/gradlew,以便 Android Studio 可以执行它。如果您在 linux 机器上使用此命令:chmod +x gradlew 运行此命令,您可能需要具有管理权限。在 Ubuntu 中,您可以使用 sudo chmod +x gradlew 来做到这一点
在我的情况下,看起来 gradle 在 64 位 Ubuntu 16.04 上缺少 32 位库。执行 sudo apt-get install libstdc++6:i386
解决了问题。
在将 google play api 添加到依赖项后发生在我身上{}。 ./gradlew app:assembleDebug
显示类似于 Dex ID limit reached use multi-dex.
的错误,就像我按照 here 所述进行设置时,我决定删除我最近添加的依赖项,问题就消失了。
Google 还建议使用 proguard 作为一种技术来优化同一文档中的 Dex ID 数量。
对于 GNU/Linux 用户:
我将 SDK 从另一个存储复制到我的主目录。然后我得到了库存gradle build running
。问题是 SDK 文件的权限。观察 gradle 控制台日志,如果你看到一些权限被拒绝的东西,然后执行以下操作 - 通过此命令授予所有文件执行权限:
chmod -R +x /path/to/android-sdk
经过一番努力并遵循上面(以及类似帖子)发布的所有解决方案后,我终于发现我的 PC 上的问题是防病毒应用程序。我禁用了它,并且 gradle 刷新并快速构建,就像问题开始之前一样。
看起来我的防病毒软件最近开始阻止 gradle 从 Internet 更新/下载必要的信息,这就是导致延迟并最终导致加载和刷新项目超时的原因。每次都禁用防病毒软件可以解决问题。
我在 virtualbox 5.0.16 虚拟机和带有 Android Studio 2.0 的 gradle 版本 2.10 上安装了 centos 7 64 位
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 开始成为一种魅力。祝你好运!
我有类似的东西。
当我从命令运行 gradle 时,它会抛出这个异常
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:compileDevDebugJavaWithJavac'.
在这条线等了大约 25 分钟后
:app:compileDevDebugJavaWithJavac
原来这与我使用的 android annotations 有关。我更换了
@UiThread
我正在使用
activity.runOnUiThread(new Runnable(...
它开始编译得很好。这很奇怪,因为我在代码中的许多其他地方都使用了 @UiThread 注释。
就我而言,Gradle Builder(Android Studio 2.2、Windows 10)出现了这个错误
java.lang.RuntimeException:等待从属 aapt 进程超时,尝试将环境变量 SLAVE_AAPT_TIMEOUT 设置为大于 5 秒的值
解决方案只是将变量 SLAVE_AAPT_TIMEOUT 添加到我的 Windows 环境中,并将其设置为 30
我遇到了同样的问题,并解决了在系统变量中设置变量 SLAVE_AAPT_TIMEOUT 的值为 30。
我在 Windows 上,我遇到了同样的问题。
对我来说, gradlew 可执行文件不知何故被删除了,不知道如何删除。我在金丝雀上,我以前遇到过这个问题。
在 Android Studio 的终端窗口中,键入 gradlew
,如果丢失,它将重新下载并安装它。 (我的旧解决方案是完全重新安装 Android Studio,所以这更容易)
即使使用新的标准项目(Ubuntu 16.04),我也遇到了同样的问题。问题出在 Gradle 的第三方依赖项中。查看文件:~/.gradle/init.gradle 它可能包含 Gradle 无法加载的其他依赖项。可以在控制台看到不能加载的内容:./gradlew --debug
如果您使用领域库并使用 RealmStudio 或 RealmBrowser 打开文件 .realm,请确保执行删除文件 .realm/lock 和文件夹 .realm.management。
我认为 java.exe
是这个问题的原因。只需手动终止此应用程序并尝试。使用 Android Studio 3.0.1 对我来说真的很有效。
就我而言,它卡在 mergeDebugResources
上,因为我不小心在字符串中有一个双转义的单引号 \\'
。 Android Studio 不会将此标记为错误,而是会卡在构建中!
BuildTools
->Gradle