Android Hello-World编译错误:Intellij找不到Aapt


90

我正在尝试在Ubuntu 12.04中使用IntelliJ设置一个Android开发环境。我创建了一个Android应用程序模块,但是当我尝试构建时,出现以下错误:

android-apt-compiler:无法运行程序“ / home / jon / Programs / android-sdk-linux / platform-tools / aapt”:java.io.IOException:error = 2,没有这样的文件或目录

数小时的互联网搜索无济于事。

顺便说一句,我locate aapt在航站楼里跑步,发现它aapt位于/home/jon/Programs/android-sdk-linux/build-tools/17.0.0/aapt


好,谢谢大家的回答!我切换到Android Studio分支,并且工作正常。但是我认为关于符号链接或android-maven-plugin的其他解决方案可能更适合其他intellij用户。我想这个问题将在一段时间内得到更新...
jonS90

Answers:


130

似乎r22 SDK版本的最新更新将aapt和lib jar从平台工具移至了build-tools目录。当我们等待JetBrains发布更新时,这是使用几个符号链接的快速修复:

在您的AndroidSDK / platform-tools目录中,运行以下命令:

ln -s ../build-tools/17.0.0/aapt aapt
ln -s ../build-tools/17.0.0/lib lib

...并且IntelliJ应该能够正常编译。


21
嗨,对我来说也很完美。仅供参考:我在Windows下运行Intellij,您可以使用管理员权限打开DOS提示符,然后运行:mklink D:\Android\android-sdk\platform-tools\aapt.exe D:\Android\android-sdk\build-tools\17.0.0\aapt.exemklink /D D:\Android\android-sdk\platform-tools\lib D:\Android\android-sdk\build-tools\17.0.0\lib
Francesco Pez

还必须添加:ln -s ../build-tools/17.0.0/aidl aidl
xaviert

3
如果获取此消息并直接执行aapt并还显示找不到文件,则可能是64位问题:链接
Tomas

@FrancescoPez在XP或使用fat32的系统中不起作用。对于WinXP:schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
另一个用户,

对于Windows 64位用户,例如Francesco Pez,只提到了带空格的路径的提示:将两个路径都用引号引起来,例如mklink“ C:\ Program Files \ androidsdk \ sdk \ platform-tools \ aapt.exe”“ C:\ Program Files \ androidsdk \ sdk \ build-tools \ android-4.3 \ aapt.exe”
ChristianSchäfer

21

通过使用beta版本作为更新通道将IntelliJ更新到12.1.4 在此处输入图片说明


2
做到了这一点,但是,我必须选择早期发布,显示.4更新,然后重新启动时,我得到了3.x,但我拒绝了。(Mac OS X 10.8.x)
Martin Marconcini

12

在Windows中,仅复制就足够了aapt.exelib\dx.jar并且dx.bat

来自build-tools \ android-4.2.2

平台工具


10

android-studio对我来说发生了同样的问题。但是,这可能也适用于IntelliJ IDE。

但是,当检查文件位置时,我看到它aapt在预期位置。

就我而言,问题是我正在运行无法执行32位aapt可执行文件的64位Ubuntu Linux系统。

在我的情况下,安装32位兼容性库可以解决此问题: sudo apt-get install ia32-libs


ia32-libsUbuntu 13.10及更高版本似乎不再可用。
乍得宾厄姆

添加deb http://archive.ubuntu.com/ubuntu/ raring main restricted universe multiverse/etc/sources.list,然后sudo apt-get update,然后sudo apt-get install ia32-libs
Mendhak

6

我用此命令来解决它

ln -s ~/Programs/android-sdk-linux/build-tools/17.0.0/aapt ~/Programs/android-sdk-linux/platform-tools/aapt
ln -s ~/Programs/android-sdk-linux/build-tools/17.0.0/lib ~/Programs/android-sdk-linux/platform-tools/lib

3

我也注意到了。

ADT已更新,他们添加了这个新的构建工具,将所有内容移到了那里。Intellijidea不会更新路径,因此会在旧路径中搜索aapt。

我不知道如何解决,所以如果您找到解决方案,请告诉我...

更新:

我认为您只有两种选择:

1)使用Android Build Studio:http : //developer.android.com/sdk/installing/studio.html 2)从build-tools / 17.0.0 /复制所有内容(这很脏,但是可以正常使用)到platform-tools /它会建立


啊,更新问题。好了,我才发现,谷歌发布了Android Studio中,这是一个的IntelliJ的。也许Google希望人们改用Android Studio而不是更新Intellij?
jonS90 2013年

是的,他们发布了它(看看昨天的Google I / O主题演讲)。基本上是JideaCommunity +更多关注android。然后它将与JideaPro合并(我希望如此)。
StErMi

2
它不是一个真正的分支,它是基于Early Access Program构建的。一旦该EAP构建成为主线IntelliJ,它将具有Android Studio相同的功能。
powerj1984


2

谢谢你的提示!在运行Android 4.2.2 SDK的Mac上,效果很好。您只需要相应地更新路径。例如

ln -s ../build-tools/android-4.2.2/lib lib

ln -s ../build-tools/android-4.2.2/aapt aapt


1

我遇到了这个问题,但是使用了android-maven-plugin,并且作为项目#2的变体,而不是复制文件,我只是为aapt创建了一个符号/软链接

cd platform-tools
ln -s ../build-tools/17.0.0/aapt ./

这种方法似乎使我的所有构建再次起作用。


1

在GitHub上克隆android-maven-plugin并将其安装在您的仓库中

git clone https://github.com/jayway/maven-android-plugin.git
cd ... / maven-android-plugin /
mvn全新安装

然后更新您的pom以使用插件的3.5.4-SNAPSHOT版本。一切都应该正常工作!


但是请注意,这将修复Maven构建,而不是IntelliJ构建。为此,在IntelliJ对其进行修复之前,符号链接的解决方法应该会有所帮助。
安迪·丹妮

您应该可以在IntelliJ conf中的某个地方找到android-maven-plugin版本...
avianey

内置的IntelliJ构建系统不使用android-maven-plugin。要使其工作,您需要进行符号链接。而且,如果您执行符号链接,则无需更新至android-maven-plugin的最新快照;链接将同时修复IntelliJ构建和非最新版本的android-maven-plugin。
安迪·丹妮

是的,我有一个Windows环境。以管理员身份启动DOS窗口,然后使用mklink命令。转到平台工具,然后为aapt.exe,aidl.exe,dexdump.exe,dx.bat和lib \ dx.jar创建指向其在build-tools \ 17.0.0和build-tools \ 17.0中的对应对象的链接。 0 \ lib。注意:您需要在platform-tools下创建lib子文件夹。
安迪·丹妮

0

我运行了这三个命令,问题就解决了

mklink "%ANDROID_HOME%\platform-tools\aapt.exe" "%ANDROID_HOME%\build-tools\17.0.0\aapt.exe"

mklink /D "%ANDROID_HOME%\platform-tools\lib" "%ANDROID_HOME%\build-tools\17.0.0\lib"

mklink "%ANDROID_HOME%\platforms\android-17\tools" "%ANDROID_HOME%\build-tools\17.0.0\aidl.exe"

如果您尚未设置ANDROID_HOME环境变量,则将%ANDROID_HOME%替换为android SDK的路径,例如C:\ Android \ android-sdk


0

在Mac OS上,您需要

$ cd platform-tools
$ ln -s ../build-tools/android-4.2.2/aapt aapt
$ ln -s ../build-tools/android-4.2.2/lib lib

0

美好生活再次。万一出现这样的错误清除项目,您就很好了。

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.