【问题标题】:What happened to Android AAPT?Android AAPT 发生了什么?
【发布时间】:2010-03-16 02:57:08
【问题描述】:

我下载了最新版本的 Android for Linux (android-sdk_r05-linux_86.tgz)。我试图使用 Android Ant 任务来打包、构建和部署我的代码。我应该提到我正在运行 AMD64,但我安装了 32 位库。 Android Ant 任务全部中断。

首先,启动模拟器任务永远不会让模拟器运行。它确实超过了启动 adb,但它只是坐在那里。

其次,SDK 缺少工具目录中的 AAPT 二进制文件。因此,示例记事本示例应用程序甚至无法正确打包。

java.lang.IllegalStateException: 在 /home/user/bin/android-sdk-linux_86
的 sdk 中找不到 aapt
在 com.googlecode.autoandroid.lib.AndroidTools.locateTool(AndroidTools.java:116)
在 com.googlecode.autoandroid.lib.AndroidTools.startTool(AndroidTools.java:103)
在 com.googlecode.autoandroid.lib.AndroidTools.startTool(AndroidTools.java:91)
在 com.googlecode.autoandroid.lib.UnixAndroidTools.aapt(UnixAndroidTools.java:9)

我已为 Android 配置了所有依赖项。我可以从命令行运行它就好了。

我假设 Ant 代码与最近的 SDK 更新不同步。任何人都可以阐明这个问题吗?此时,我正在考虑编写自己的 Python 脚本来与 Android SDK 交互。呃。

【问题讨论】:

标签: java android exception ant


【解决方案1】:

对于最近遇到此问题的任何人,aapt 再次移动。它现在位于 $ANDROID_SDK/build-tools/17.0.0。

【讨论】:

    【解决方案2】:

    我已经写了三本书,全部使用 Android Ant 构建脚本。相信我,它们有效。

    首先,启动模拟器任务永远不会 让模拟器运行。它确实得到 过去启动 adb,但随后就坐 在那里。

    运行android 命令并从出现的 AVD Manager 窗口启动模拟器。 AFAIK,Ant 中没有 start-emulator 任务——事实上,我不知道曾经有过。

    其次,SDK 缺少 aapt 工具目录中的二进制文件。

    如果您正在查看 $ANDROID_HOME/tools/(其中 $ANDROID_HOME 是您解压缩 SDK 的位置),您不应该在那里找到 aapt。该目录用于直接支持所有 API 级别的工具。特定于 API 级别的工具,例如 aapt,将驻留在 $ANDROID_HOME/platforms/$SDK/tools/ 中(其中 $SDK 是某些 Android 版本的名称,例如 android-2.1)。

    如果您在$ANDROID_HOME/platforms/ 中没有任何内容,请按照installation instructions 的第4 步操作。

    【讨论】:

    • 1) 我在记事本示例中看到了一个启动模拟器任务,但它似乎不起作用(参见颠覆): 2) Android Ant 任务与新的目录结构混淆。我现在得到一个“BUILD FAILED java.lang.IllegalStateException: Can't find apkbuilder inside the sdk at /home/mike/bin/android-sdk-linux_86/platforms/android-7/” env: $ echo $ANDROID_HOME / home/user/bin/android-sdk-linux_86/platforms/android-7/ $ echo $ANDROID_SDK /home/user/bin/android-sdk-linux_86
    • 1) 是的,那已经过时了。希望这些文档保持同步。不要使用您在那里看到的任何 Ant 脚本 - 使用 android create projectandroid update project 创建正确的 build.xml 文件。 2)$ANDROID_HOME 应该是/home/user/bin/android-sdk-linux_86。我对aapt 的评论是针对手动寻找该工具的。现代 Ant 脚本会根据您的目标平台找到正确的 aapt
    • 我在查找有关自定义“android create project”生成的构建脚本的文档时遇到了很多麻烦。我需要控制要编译的内容以及打包方式。 “设置”任务对我来说太笼统了。
    • 没有文档,除了脚本(和相关的 Java 类)本身,AFAIK。如果您已经使用 Android 很长时间了,请把自己打晕。否则,在您对 Android 非常熟悉之前,我会保留 Ant 脚本并在它们的约束范围内工作。或者,切换到 Maven。或者,使用 Eclipse。 Android 应用程序的构建过程只是模糊地类似于 Java 桌面应用程序、servlet、WAR 或其他任何东西的构建过程。构建工具适用于当前结构,可能适用于任何其他结构,也可能不适用于任何其他结构。
    • 我自己通过调整 android_rules.xml 文件中的属性解决了这个问题。请参阅以下文章:disgruntledrats.com/?p=27
    猜你喜欢
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 2014-02-28
    相关资源
    最近更新 更多