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

Posted

技术标签:

【中文标题】Android Hello-World 编译错误:Intellij 找不到 aapt【英文标题】:Android Hello-World compile error: Intellij cannot find aapt 【发布时间】:2013-05-11 10:29:10 【问题描述】:

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

android-apt-compiler: 无法运行程序 "/home/jon/Programs/android-sdk-linux/platform-tools/aapt": java.io.IOException: error=2, No such file or directory

在互联网上搜索了几个小时并没有帮助。

顺便在终端跑了locate aapt,发现aapt位于/home/jon/Programs/android-sdk-linux/build-tools/17.0.0/aapt

【问题讨论】:

好吧,谢谢大家的回答!我切换到Android Studio fork,它工作得很好。但我认为关于符号链接或 android-maven-plugin 的其他解决方案可能更适合其他 intellij 用户。我想这将在一段时间内在更新中得到修复...... 【参考方案1】:

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

来自 build-tools\android-4.2.2

平台工具

【讨论】:

【参考方案2】:

又是美好生活。 以防万一出现此类错误清理项目,您就可以开始了。

【讨论】:

【参考方案3】:

在 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

【讨论】:

【参考方案4】:

我运行了这三个命令,我的问题得到了解决

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

【讨论】:

【参考方案5】:

我的 android-studio 也出现了同样的问题。但是,这可能也适用于 IntelliJ IDE。

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

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

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

【讨论】:

似乎 ia32-libs 不再适用于 Ubuntu 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【参考方案6】:

感谢您的提示!在运行 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

【讨论】:

【参考方案7】:

我用这个来解决这个问题

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

【讨论】:

【参考方案8】:

将您的 IntelliJ 更新到 12.1.4,使用 beta 版本作为更新渠道

【讨论】:

这样做了,但是,我必须选择 EARLY RELEASES,它显示了 .4 更新,然后当它重新启动时,我得到了 3.x,但我拒绝了。 (Mac OS X 10.8.x)【参考方案9】:

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

git克隆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 版本... 内置的 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\库。注意:您需要在 platform-tools 下创建 lib 子文件夹。【参考方案10】:

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

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

这种方法似乎让我的所有构建再次运行。

【讨论】:

【参考方案11】:

要向 Jetbrains 投诉,请访问:http://youtrack.jetbrains.com/issue/IDEA-107311

我认为更多的投票将是一个更快的解决方案。

【讨论】:

【参考方案12】:

似乎 r22 SDK 版本的最新更新将 aapt 和 lib jar 从平台工具移动到了构建工具目录。在我们等待 JetBrains 发布更新时,这里有一个使用几个符号链接的快速修复:

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

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

...IntelliJ 应该可以正常编译了。

【讨论】:

嗨,我也很适合。仅供参考:我在 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 还必须加:ln -s ../build-tools/17.0.0/aidl aidl 如果你得到这个并直接执行 aapt 也说找不到文件,你可能遇到了 64 位问题:link @FrancescoPez 在 XP 或使用 fat32 的系统中不起作用。对于 WinXP:schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html 对于像 Francesco Pez 这样的 Windows 64 位用户,只提到了带有空格的路径的提示:将两个路径放在引号中,例如mklink "C:\Program Files\androidsdk\sdk\platform-tools\aapt.exe" "C:\Program Files\androidsdk\sdk\build-tools\android-4.3\aapt.exe"【参考方案13】:

我也注意到了。

ADT 已更新,他们在移动所有内容的地方添加了这个新的构建工具。 Intellijidea 不会更新路径,因此它会在旧路径中搜索。

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

更新:

我认为你只有两个选择:

1) 使用 Android 构建工作室:http://developer.android.com/sdk/installing/studio.html 2) 将 build-tools/17.0.0/ 中的所有内容复制(这很脏但有效)到 platform-tools/ 它将构建

【讨论】:

啊,更新问题。好的,所以我刚刚发现Google发布了Android Studio,这是Intellij的一个fork。也许 Google 希望人们切换到 Android Studio 而不是更新 Intellij? 是的,他们发布了它(看看昨天的 Google I/O 主题演讲)。它基本上是 JideaCommunity + 更专注于 android。然后会和JideaPro合并(希望如此)。 它并不是真正的分叉,它是基于 Early Access Program 构建的。一旦该 EAP 构建成为主线 IntelliJ,它将具有与 Android Studio 相同的功能。

以上是关于Android Hello-World 编译错误:Intellij 找不到 aapt的主要内容,如果未能解决你的问题,请参考以下文章

01-Taro打造hello-world应用

01-Taro打造hello-world应用

Docker hello-world:身份验证错误

Android Studio编译错误总结

使用阿里云服务一键解决docker pull hello-world问题

Android 编译错误记录