Android Studio无法构建新项目,等待aapt进程超时。

29

我已经安装了Android Studio 1.2并创建了一个新项目。当我尝试构建时,它卡住了。这是在Gradle控制台中,还有大约20个其他副本,其中有不同的数字png-cruncher_后面:

Exception in thread "png-cruncher_2" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds
at com.android.builder.png.AaptProcess.waitForReady(AaptProcess.java:104)
at com.android.builder.png.QueuedCruncher$1.creation(QueuedCruncher.java:107)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:204)
at java.lang.Thread.run(Thread.java:745)

"伴随着大约20份其他副本,文件名后缀为png-cruncher_加不同的数字:这是什么?这是一个新项目吗?" - Jared Burrows
是的,我在一个新项目中遇到了这个问题。控制台上有更多的错误,安装了一些32位支持库后,所有问题都得到了解决。 - Steven Bell
1
我在Mac OS/X 10.7.5 Lion上遇到了同样的问题。安装下面描述的Android支持库并没有帮助。我正在运行Android Studio 1.3.2。我尝试构建的项目是SDK示例之一:ActionBarCompat-Basic。 - jsp
请查看此链接:https://dev59.com/B2Qn5IYBdhLWcg3wg3aR#36826562 - Ahmad Aghazadeh
请参见Android问题188627的讨论。 - Joe Bowbeer
11个回答

58

我在使用Debian Jessie for AMD64时遇到了同样的问题。我尝试了以下方法,它起作用了:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

4
在Ubuntu x64上拯救了我的生命。 - brux
2
谢谢。请注意,在安装这些软件包之前需要运行 apt-get update 命令。 - Ivan Morgillo
非常感谢您对我的Ubuntu 16.04的帮助。 - lovefish
请问您能否解释一下为什么这个方法可以解决问题? - Marian Klühspies
公平地说:官方文档中指出需要执行 "sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 lib32bz2-1.0" https://developer.android.com/studio/install.html -> linux - Patrick

27

我在运行Windows 8.1(64位)上的Android Studio 1.5.1时遇到了相同的问题,解决方法是添加以下两个系统环境变量:

SLAVE_AAPT_TIMEOUT = 30
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_65

(请注意:JAVA_HOME系统环境变量的路径取决于您的JDK安装位置,而且您的JDK版本可能与上面的示例不同。)


设置 SLAVE_AAPT_TIMEOUT 对我有用,感谢,Beveridge先生。 - Armand
@Luke Beveridge:在哪里设置环境变量? - Swift
@AndroidGeeks 假设您正在使用 Windows8 / Windows10,您可以通过打开控制面板,然后单击:系统->高级系统设置->环境变量来导航到此处。在这里,您将能够创建新的环境变量或编辑现有的变量。 - Luke Beveridge

3

我在Windows 8.1 64位系统上遇到了这个问题,最终解决的方法是在项目文件夹中通过命令行以调试模式运行gradle:

gradlew -d assembleDebug

没有使用 -d 标志运行时也遇到了同样的问题。

第一次运行后,一切都正常,我甚至可以清理并重建我的项目。


3

我遇到了这个问题,缺少需要在SDK上安装的库。 只需安装正确的库即可立即解决问题。 在我的情况下,是Android Support Library,因为我正在创建一个导航抽屉。 Gradle控制台显示的错误没有给我任何解决方案的线索,也没有帮助我。 点击SDK管理器,然后点击SDK工具选项卡,勾选“Android Support Library”,然后点击应用。


3

1
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅有链接的答案可能会失效。- 来自审查 - Shawn
答案是,重新启动您的机器以解决此问题。 - Juliano Moraes

2
如果你在运行Linux x64机器上,可能会缺少一些必需的库。 官方sdk指南说明:

64位机器所需的库:

如果你正在运行Ubuntu的64位版本,则需要使用以下命令安装一些32位库:

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 lib32bz2-1.0

如果你正在运行64位Fedora,则命令为:

sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686

当然不要忘记

sudo apt-get update

首先。


对于 Fedora 24,以下命令适用于我:sudo dnf install compat-libstdc++-296.i686 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 ncurses-libs.i686 - Sukhbir

1

我在CentOS 6.5遇到了同样的问题。在这个错误之前,我找到了错误的原因,如下所示。

AAPT err(Facade for 1129807373): xxx/aapt: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by xxx/lib64/libc++.so)

"libc.so.6: 版本 `GLIBC_2.14' 未找到"。CentOS 6.5 的最高版本是2.12,我们需要升级到2.14。
显示已安装的glibc版本:
# rpm -qa | grep glibc

为了下载相应的RPM包,请访问以下链接:ftp.redsleeve.org/pub/steam/ 按照以下步骤安装RPM包:
# rpm -Uvh glibc-2.15-60.el6.x86_64.rpm glibc-common-2.15-60.el6.x86_64.rpm glibc-devel-2.15-60.el6.x86_64.rpm glibc-headers-2.15-60.el6.x86_64.rpm --nodeps --force

1
通过暂停防病毒软件,我不再遇到这个问题,或者更好的方法是在防病毒软件中创建规则以接受一个被识别为特洛伊木马的“.class”文件名,然后在编译时禁止它。

1

如果防火墙阻止了您的操作,请检查一下。对我而言,禁用防火墙可行,但我不确定这是否是正确的解决方法。


0

降级构建工具救了我。


你能详细说明一下吗?你是怎么做到的? - PhpCoder

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