蚂蚁构建失败

Posted

技术标签:

【中文标题】蚂蚁构建失败【英文标题】:Ant Build Failed 【发布时间】:2013-05-12 12:30:59 【问题描述】:

我正在尝试通过 命令行 使用 Apache Ant 构建一个 android 项目,但它给了我 Build Failed 以下错误语句: Java.io.IOException:无法运行程序。 "..\android_sdk\platform-tools\aapt.exe"

D:\MediaSync\build.xml:429:执行失败:java.io.IOException:无法运行程序“..\android_sdk\platform-tools\aapt.exe”

我对这件事很陌生,所以我不知道如何克服这个错误。搜索了很多,但仍然摸不着头脑.. 有谁知道的话请告诉我。

编辑:这是我的 Buil.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>

【问题讨论】:

您找到解决问题的方法了吗..? @AmritpalSingh .. 我实际上不记得我当时做了什么。您可以尝试以下答案。 【参考方案1】:

确保 aapt.exe 安装在相对于您的 build.xml 文件 (../android_sdk/platform-tools) 的正确路径中。该路径可能与您的项目相关,但与 build.xml 无关。

【讨论】:

appt.exe 正确地位于 platform-tools 文件夹中。我的 Android SDK 放在 C 盘。所以aapt.exe的完整路径如下:C:\android-sdk-windows\sdk\platform-tools\aapt.exe\。 !!! bt 仍然没有构建项目 为避免混淆,您还可以使用绝对路径。 @javadeveloper.. 我该如何使用它?你能告诉我例子吗【参考方案2】:

我在 64 位 fedora 平台上遇到了同样的问题,最后解决了这个问题:http://blog.mx17.net/2012/10/25/android-on-ubuntu-ioexception-on-aapt/

由于尝试在 64 位架构上运行 32 位程序而失败。 也许这会有所帮助。

【讨论】:

@yangxu...谢谢您的回复...我已经编译了代码..我的问题是项目安装指南不是最新的。【参考方案3】:

你的错误信息说:

D:\MediaSync\build.xml:429:执行失败:java.io.IOException:无法运行程序“..\android_sdk\platform-tools\aapt.exe”

当您的 aapt.exe 位于:

C:\android-sdk-windows\sdk\platform-tools\aapt.exe\

显然 build.xml 尝试在 D:\ 中搜索 android_sdk\platform-tools\aapt.exe,这是错误的路径。

应该有一个属性让你指定aapt.exe的路径,或者从系统的PATH变量中读取。

要获得解决方案,请在 build.xml 中的第 429 行附近发布行。在第 429 行,应该有一个&lt;exec&gt; 任务,一定要包含该任务的全部内容(从&lt;exec ...&gt; 复制到&lt;/exec&gt;)。

【讨论】:

@coolcfan .. 我已经在系统变量中为“Platform-tools”文件夹和“Tools”设置了正确的路径,并在 SDK 的 Build.properties 中提到了正确的路径......如果我在 Build.xml 文件中设置 android SDK 的绝对路径然后再次构建失败.. @Noman 那么,$aapt 的值是多少?这是一个属性,请检查您的 build.xml 和属性文件中的“aapt”。另外,您可以使用&lt;echo&gt; 来输出$aapt 的值——只需在&lt;exec&gt; 之前添加一个回显行。 @coolcfan... 它的价值观就在你面前。它是正确的。那东西没问题.. @coolcfan...谢谢您的回复...我已经编译了代码..我的问题是项目安装指南不是最新的。【参考方案4】:

在 intellij android studio 和其他 IDE 中存在一个错误,该错误指向现在存在于 build-toos 中的某些可执行文件/库的平台工具。目前的一种解决方法是为必要的文件创建 sim-links。

所以在 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

【讨论】:

【参考方案5】:

您可以做的快速修复是将 aapt.exe 和 lib 文件夹从 build-tools 复制到 platform-tools 文件夹。

【讨论】:

以上是关于蚂蚁构建失败的主要内容,如果未能解决你的问题,请参考以下文章

如何通过bash脚本检测ant / maven的构建错误?

Junit ant 任务未将断言错误报告为失败

离子构建失败:失败:构建失败并出现异常

构建失败:如何解决 React Native iOS 虚拟设备应用构建失败、CompileSwift 和 CompileC 失败?

idea构建失败?

如果SonarQube失败质量门,则VSTS构建失败