2013-05-12 232 views
3

我试图通过命令行生成使用Apache Ant的一个Android项目,但它给我构建失败,出现以下错误语句:
产生java.io.IOException:不能运行程序。 “.. \ android_sdk \ platform-tools \ aapt.exe”Ant构建失败

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> 
+0

你有没有找到解决你的问题..? – 2015-06-19 13:16:26

+0

@AmritpalSingh ..我其实不记得当时我做了什么。你可以尝试下面的答案。 – Noman 2015-06-22 04:43:33

回答

3

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

+0

appt.exe正确地位于platform-tools文件夹中。我的Android SDK放在C盘中。所以aapt.exe的完整路径如下: C:\ android-sdk-windows \ sdk \ platform-tools \ aapt.exe \。 ! bt仍然没有构建项目 – Noman 2013-05-12 12:46:04

+0

为了避免混淆,你也可以使用绝对路径。 – javadeveloper 2013-05-12 12:46:12

+0

@javadeveloper ..我怎么用它? 你能告诉我示例 – Noman 2013-05-12 12:49:47

1

你的错误消息指出:

d:\ MediaSync \的build.xml:429:执行失败:产生java.io.IOException:不能运行程序” .. \ android_sdk \平台工具\ AAPT。 EXE”

,而你的aapt.exe位于:

C:\ Android的SDK-WINDOWS \ SDK \平台工具\ aapt.exe \

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

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

要获得解决方案,请在build.xml中的第429行周围放置行。在第429行中,应该有一个<exec>任务,请确保包含该任务的全部内容(从<exec ...>复制到</exec>)。

+0

@coolcfan ..我已经在系统变量中为“Platform-tools”文件夹和“Tools”设置了正确的路径,并在SDK的Build.properties中提到了正确的路径... 并且if我在Build.xml文件中设置android SDK的绝对路径,然后再次生成失败.. – Noman 2013-05-13 07:20:00

+0

发布您的build.xml的部分... – coolcfan 2013-05-13 07:41:35

+0

@coolcfan ...请现在看看。 – Noman 2013-05-13 07:51:52

3

我遇到了一个64位的Fedora平台同样的问题,终于摸索出来以下这一点:http://blog.mx17.net/2012/10/25/android-on-ubuntu-ioexception-on-aapt/

它曾因为试图运行上的64位架构的32位程序失败。 也许这会有所帮助。

+0

@yangxu ...感谢您的回复......我编译了代码..我的问题是项目安装指南并不是最新的。 – Noman 2013-05-20 07:22:01

1

intellij android studio中存在一个bug,也许其他IDE指向平台工具,用于某些可执行文件/库,它们现在生活在build-toos中。目前的解决方法是制作必要文件的模拟链接。所以,在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与mklink取代LN和读取与无参数输入mklink帮助。在Windows中,该文件将是appt.exe

0

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