我正试图通过命令行使用Apache Ant构建Android项目,但它给了我构建失败以下错误语句:
Java.io.IOException: Cannot run Program。". . android_sdk 平台工具 aapt.exe "
D:MediaSyncbuild.xml:429: Execute failed: java.io.IOException: Cannot run program ". android_sdkplatform-toolsaapt.exe"
我是新的这件事,所以我不知道如何克服这个错误。搜索了很多关于它,但仍然挠头…
如果有人有什么想法,请告诉我。
EDIT:这是我的build .xml文件的一部分
<!-- General SDK location -->
<property name="sdk-folder" value="D:/sdk" />
<!-- Preset tools location -->
<property name="android-platform-tools" value="${sdk-folder}/platform-tools"/>
<!-- Tools -->
<condition property="aapt" value="${android-platform-tools}/aapt.exe" else="${android-platform-tools}/aapt" >
<os family="windows"/>
</condition>
<!-- Generate the R.java file for this project's resources. -->
<target name="resource-src" depends="init, localization, replace-template-values">
<echo>Generating R.java / Manifest.java from the resources...</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg value="${outdir-r}" />
<arg value="-M" />
<arg value="${outdir.manifest}/AndroidManifest.xml" />
<arg value="-S" />
<arg value="${resource-dir}" />
<arg value="-I" />
<arg value="${android-jar}" />
</exec>
</target>
确保aapt.exe安装在相对于build.xml文件(../android_sdk/platform-tools)的正确路径上。该路径可能相对于您的项目,但不是build.xml。
我在64位fedora平台上遇到了同样的问题,最终解决了如下问题:http://blog.mx17.net/2012/10/25/android-on-ubuntu-ioexception-on-aapt/
由于试图在64位架构上运行32位程序而失败。
你的错误信息显示:
D:MediaSyncbuild.xml:429: Execute failed: java.io.IOException: Cannot run program ". android_sdkplatform-toolsaapt.exe"
而您的aapt.exe位于:
C: android-sdk-windows sdk 平台工具 aapt.exe
显然build.xml试图在D:
中搜索android_sdkplatform-toolsaapt.exe
,这是错误的路径。
应该有一个属性来指定aapt.exe的路径,或者它从系统的path变量中读取。
要得到一个解决方案,将build.xml中429行周围的行发布出来。在第429行,应该有一个<exec>
任务,确保包括该任务的全部内容(从<exec ...>
复制到</exec>
)。
intellij android studio和其他ide中有一个错误,指向一些现在存在于构建工具中的可执行文件/库的平台工具。现在的一个解决方法是为必要的文件创建sim链接。
在linux/mac上
platform-tools$ ln -s ../build-tools/android-version-blah/bin/appt appt
和
platform-tools$ ln -s ../build-tools/android-version-blah/lib lib
对于Windows,安装LinkExtensions并将ln替换为mklink
,并从键入不带参数的mklink
中读取帮助。在Windows中,该文件为appt.exe
您可以做的一个快速修复是将aapt.exe和lib文件夹从build-tools复制到platform-tools文件夹。