`ant`在项目目录中寻找`aapt`?

时间:2015-06-18 09:55:58

标签: android ant build aapt

我最近遇到了一个已经工作了几个月的构建过程的问题 - 我可能已经更新了自上次工作构建以来的Android构建工具,但我不确定。

无论如何

ant -Dsdk.dir=$ANDROID_HOME -Djava.source=7 -Djava.target=7 clean release

失败,显示以下消息:

/home/dmta/development/android-sdk-linux/tools/ant/build.xml:694: Execute failed: java.io.IOException:
Cannot run program "/home/dmta/EclipseProjects/MyProject/Hawk/${aapt}"
(in directory "/home/dmta/EclipseProjects/MyProject/Hawk"): error=2,
No such file or directory

Hawk是我正在使用的图书馆项目。

这里可能有什么问题?

我可以从Eclipse构建程序,但我需要使用ant build构建程序。

2 个答案:

答案 0 :(得分:1)

AAPt位置在最新更新中更改。将lib / dx和aapt:这两个文件复制回platform-tools。 如果不存在,也尝试添加工具路径,例如:

<!-- tools location -->
<property name="android.tools.dir" location="${sdk.dir}/tools" />
<property name="android.platform.tools.dir" location="${sdk.dir}/platform-tools" />
<property name="android.buildtools.dir" location="${sdk.dir}/build-tools/22.0.1" />
<condition property="exe" value=".exe" else="">    <os family="windows" />    </condition>
<condition property="bat" value=".bat" else="">    <os family="windows" />    </condition>
<property name="adb" location="${android.platform.tools.dir}/adb${exe}" />
<property name="lint" location="${android.tools.dir}/lint${bat}" />
<property name="zipalign" location="${android.buildtools.dir}/zipalign${exe}" />
<property name="aidl" location="${android.platform.tools.dir}/aidl${exe}" />
<property name="aapt" location="${android.buildtools.dir}/aapt${exe}" />
<property name="dx" location="${android.buildtools.dir}/dx${bat}" />
<property name="renderscript" location="${android.buildtools.dir}/llvm-rs-cc${exe}"/>
<property name="lint" location="${android.tools.dir}/lint${bat}" />

答案 1 :(得分:1)

在S P的初步答案的帮助下,我能够让它发挥作用。

值得注意的是,我的问题,或者至少问题标题是误导性的:起初我认为ant实际上是在项目文件夹中寻找可执行文件aapt

然而,经过仔细检查,它实际上正在寻找${aapt}。这表明ant正在尝试使用名为“aapt”的属性的值,但该属性未设置。因此,不要构建任何合理的可执行路径,而只是将名称附加到当前工作目录 - 或者类似的东西。

无论如何,我需要的只是在我的~/development/android-sdk-linux/tools/ant/build.xml文件中插入以下行:

<property name="android.buildtools.dir" location="${sdk.dir}/build-tools/22.0.1" />
<property name="aapt" location="${android.buildtools.dir}/aapt" />
<property name="aidl" location="${android.buildtools.dir}/aidl" />
<property name="dx" location="${android.buildtools.dir}/dx" />
<property name="zipalign" location="${android.buildtools.dir}/zipalign" />

那是因为我告诉蚂蚁在哪里找到aapt它抱怨aidldxzipalign