Ant调试和Ant发布失败。

5
我正在尝试使用ant命令行生成apk。我可以使用ant clean,但是对于ant debug和ant release命令,我收到以下错误消息。

BUILD FAILED

C:\ Android \ sdk \ tools \ ant \ build.xml:649:执行此行时发生以下错误:      C:\ Android \ sdk \ tools \ ant \ build.xml:694:执行失败:java.io.IOException:无法运行程序“C:\ Workspace \ SampleApp \ $ {aapt}”:CreateProcess error=2,系统找不到指定的文件               在java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)               在java.lang.Runtime.exec(Runtime.java:617)               at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Jav      a13CommandLauncher.java:58)...

在build.xml的第694行中出现了 proguardFile="${out.absolute.dir}/proguard.txt"> 代码行。我正在使用Eclipse Juno,构建目标是22(棒棒糖)。如果有任何帮助,将不胜感激。
4个回答

9
我在将Android SDK更新到最新的构建工具后遇到了同样的错误。
tools\ant\build.xml脚本中没有任何关于工具的引用。
可以通过将工具添加到build.xml并指向正确的路径来解决此问题。对我而言,这个路径是build-tools\22.0.1。
请比较并更新build.xml中的工具部分。
<!-- 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}" />

谢谢Alex提供的提示!

谢谢jdelafon,它起作用了。build.xml缺少aapt、zipalign、build-tools和dx的路径。添加后,我能够在调试模式和发布模式下生成apk。非常感谢。 - Ragini
在最新的工具中,build.xml 不再是这个样子。它包含以下内容:<!-- 预构建设置 --> <target name="-build-setup" depends="-setup"> <!-- 查找构建工具的位置 --> <getbuildtools name="android.build.tools.dir" verbose="${verbose}" /> - IgorGanapolsky

2

刚刚更新了Android SDK工具至24.3.3版本。


2

这段代码 Cannot run program "C:\Workspace\SampleApp\${aapt}" 表示变量 ${aapt} 还未被编译器翻译。

请检查您的构建脚本中是否先定义了 ${aapt} 变量。在导致错误的行之前,尝试打印出 ${aapt} 的值(例如: <echo>aapt variable: ${aapt}</echo>),以检查构建是否正确编译了该变量。


谢谢Alex,aapt路径丢失了。 - Ragini

0

请确保 proguard.config 指向您的 project.properties 中存在的 proguard 文件。

proguard.config=proguard-project.txt

谢谢您的回复...我已经按照建议进行了更改,但仍然出现相同的错误。 - Ragini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接