Hi,
I want to compile my Android APP using ANT in windows. I placed
build.xml in project root and included necessary jars in project lib
folder. I had made proper configurations for ant also, but its not
working. Please help me on this.
Error
====
C:\Documents and Settings\nav\workspace\YumFlixMobile>ant
Buildfile: C:\Documents and Settings\nav\workspace\YumFlixMobile
\build.xml
clean:
resource-src:
BUILD FAILED
C:\Documents and Settings\nav\workspace\YumFlixMobile\build.xml:33:
java.lang.Nu
llPointerException
at
com.googlecode.androidant.AndroidTools.locateTool(AndroidTools.java:8
1)
at
com.googlecode.androidant.AndroidTools.startTool(AndroidTools.java:74
)
at
com.googlecode.androidant.AndroidTools.startTool(AndroidTools.java:62
)
at
com.googlecode.androidant.WindowsAndroidTools.aapt(WindowsAndroidTool
s.java:36)
at aapt.main(aapt.java:7)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
at
org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:15
2)
at org.apache.tools.ant.taskdefs.Java.run(Java.java:771)
at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:
221)
at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:
135)
at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at
org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at
org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.jav
a:398)
at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360)
at org.apache.tools.ant.Project.executeTarget(Project.java:
1329)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:
1212)
at org.apache.tools.ant.Main.runBuild(Main.java:801)
at org.apache.tools.ant.Main.startAnt(Main.java:218)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:
109)
Total time: 1 second
=====================================================================
build.xml
=======
<?xml version="1.0" encoding="utf-8"?>
<project name="YumFlixMobile" default="precommit"
xmlns:android="antlib:com.googlecode.androidant">
<!-- Requires ant 1.7 or better -->
<property environment="env"/>
<condition property="android-home" value="$
{env.ANDROID_HOME}">
<isset property="env.ANDROID_HOME"/>
</condition>
<property name="android-ant.jar" location="lib/android-
ant.jar"/>
<taskdef uri="antlib:com.googlecode.androidant"
resource="com/googlecode/androidant/antlib.xml"
classpath="${android-ant.jar}"/>
<!-- Dependencies -->
<fileset dir="lib" id="main.jars">
<include name="positron.jar"/>
</fileset>
<fileset dir="lib" id="test.jars">
<include name="positron.jar"/>
<include name="junit.jar"/>
</fileset>
<!-- Rules -->
<target name="clean" description="Delete the output
directories.">
<delete dir="target"/>
</target>
<target name="resource-src" description="Generate the R.java
file for this project's resources.">
<android:aapt>
<arg value="package"/>
<arg value="-m"/>
<arg value="-J"/>
<arg file="src"/> <!-- Create R.java in the
source directory -->
<arg value="-M"/>
<arg file="AndroidManifest.xml"/>
<arg value="-S"/>
<arg file="res"/>
<arg value="-I"/>
<arg file="${android-home}/android.jar"/>
</android:aapt>
</target>
<target name="compile-main" depends="resource-src"
description="Compile the java source.">
<mkdir dir="target/main-classes"/>
<javac encoding="ascii" target="1.5" debug="true"
extdirs=""
srcdir="."
destdir="target/main-classes"
bootclasspath="${android-home}/
android.jar">
<classpath>
<fileset refid="main.jars"/>
</classpath>
</javac>
</target>
<target name="dex" depends="compile-main" description="Convert
the .class files into .dex files.">
<property name="classes.dex" location="target/
classes.dex"/>
<android:dx inputref="main.jars">
<arg value="--dex"/>
<arg value="--output=${classes.dex}"/>
<arg path="target/main-classes"/>
</android:dx>
</target>
<target name="package-res" description="Put the project's
resources into the output package file.">
<android:aapt>
<arg value="package"/>
<arg value="-f"/>
<arg value="-M"/>
<arg file="AndroidManifest.xml"/>
<arg value="-S"/>
<arg file="res"/>
<!-- No assets directory -->
<arg value="-I"/>
<arg file="${android-home}/android.jar"/>
<arg value="-F"/>
<arg file="target/notepad.ap_"/>
</android:aapt>
</target>
<target name="package-apk" depends="dex, package-res"
description="Package the application and sign it with a debug key.">
<android:apk-builder>
<arg file="target/notepad.apk"/>
<arg value="-z"/>
<arg file="target/notepad.ap_"/>
<arg value="-f"/>
<arg file="target/classes.dex"/>
<arg value="-rf"/>
<arg file="src"/>
<arg value="-rj"/>
<arg file="lib"/>
</android:apk-builder>
</target>
<target name="start-emulator" description="Start an
emulator.">
<android:adb><arg value="start-server"/></android:adb>
<android:start-emulator name="emulator">
<arg line="-skin 320x480 -no-boot-anim"/>
</android:start-emulator>
</target>
<target name="stop-emulator" description="Stop the emulator we
started.">
<android:stop-emulator name="${emulator}"/>
</target>
<target name="install" depends="package-apk, start-emulator"
description="Install the package on the default emulator.">
<android:adb>
<arg value="-s"/>
<arg value="${emulator}"/>
<arg value="install"/>
<arg value="-r"/>
<arg file="target/notepad.apk"/>
</android:adb>
</target>
<target name="demo" depends="install" description="Run the
application until Return is hit.">
<input>Have fun with the demo, press Return when
you're done.</input>
</target>
<target name="compile-stories" depends="compile-main"
description="Compile the stories.">
<mkdir dir="target/story-classes"/>
<javac target="1.5" debug="true" srcdir="stories"
destdir="target/story-classes">
<classpath>
<pathelement location="target/main-
classes"/>
<fileset refid="test.jars"/>
<pathelement location="${android-home}/
android.jar"/>
</classpath>
</javac>
</target>
<target name="run-stories" depends="compile-stories, install">
<mkdir dir="target/junit-reports"/>
<junit haltonfailure="true" fork="true"
forkMode="once" printsummary="true">
<sysproperty
key="positron.instrumentedPackage" value="com.example.android.notepad"/
>
<sysproperty key="positron.apk" file="target/
notepad.apk"/>
<formatter type="plain"/>
<batchtest todir="target/junit-reports">
<fileset dir="target/story-classes"/>
</batchtest>
<classpath>
<pathelement location="target/main-
classes"/>
<fileset refid="test.jars"/>
<pathelement location="${android-home}/
android.jar"/>
</classpath>
</junit>
</target>
<target name="precommit" depends="clean, run-stories, stop-
emulator" description="If this passes you are safe to commit."/>
</project>
=====================================================================
Thanks
Veradis
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en