Noman
Noman

Reputation: 4109

Ant Build Failed

I am trying to build an Android Project using Apache Ant through Command Line but it is giving me Build Failed with the following error statements:
Java.io.IOException: Cannot run Program. "..\android_sdk\platform-tools\aapt.exe"

D:\MediaSync\build.xml:429: Execute failed: java.io.IOException: Cannot run program "..\android_sdk\platform-tools\aapt.exe"

I am new to this thing so i am not getting any idea how to get over this error. Searched alot about it but still scratching my head..
Anybody any idea about it then please tell me.

EDIT: Here are parts of my Buil.xml file

<!-- 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>

Upvotes: 3

Views: 4098

Answers (5)

darKoram
darKoram

Reputation: 1153

There is a bug in the intellij android studio and perhaps other IDEs that points to platform-tools for some executables/libs that now live in build-toos. A workaround for now is to make sim-links fof the necessary files.

So on linux/mac

platform-tools$ ln -s ../build-tools/android-version-blah/bin/appt appt

and

platform-tools$ ln -s ../build-tools/android-version-blah/lib lib

for Windows, install LinkExtensions and replace ln with mklink and read the help from typing mklink with no args. In Windows, the file would be appt.exe

Upvotes: 1

Ron
Ron

Reputation: 1731

A quick fix you can do is copy the aapt.exe and lib folder from the build-tools to the platform-tools folder.

Upvotes: 0

yangxu
yangxu

Reputation: 31

I encountered the same problem on a 64-bit fedora platform and finally worked it out following this: http://blog.mx17.net/2012/10/25/android-on-ubuntu-ioexception-on-aapt/

It had failed because of trying to run a 32-bit program on an 64-bit architecture. Maybe this would help.

Upvotes: 3

Dante WWWW
Dante WWWW

Reputation: 2739

Your error message says:

D:\MediaSync\build.xml:429: Execute failed: java.io.IOException: Cannot run program "..\android_sdk\platform-tools\aapt.exe"

while your aapt.exe is located in:

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

Obviously the build.xml tries to search D:\ for android_sdk\platform-tools\aapt.exe, which is the wrong path.

There should be a property for you to specify the path of aapt.exe, or it reads from system's PATH varibles.

To get a solution, post the lines around line 429 in build.xml. In line 429, there should be a <exec> task, be sure to include the whole content of that task (copy from <exec ...> to </exec>).

Upvotes: 1

user1676075
user1676075

Reputation: 3086

Make sure aapt.exe is installed at the correct path relative to your build.xml file (../android_sdk/platform-tools). That path is likely relative to your project, but not the build.xml.

Upvotes: 3

Related Questions