我最近遇到了一个已经工作了几个月的构建过程的问题 - 我可能已经更新了自上次工作构建以来的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构建程序。
答案 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
它抱怨aidl
,dx
和zipalign
。