2

Hallo,

I cannot compile my project using an ant build script. The error message:

Ant cannot find symbol...

I read about creating build.xml, but it seems it is not enough. My project directory has the following layout:

poject

  • src
    • gen
    • ...

libarie_with_needed_java.file

  • src
    • clients
    • helper

How do I work with external references? Ant cannot find android jar. The build.xml file looks as follows:

<?xml version="1.0" encoding="UTF-8"?>
==================================================================== -->
<project name="test" default="main" basedir=".">

<!-- ==================================================================== 
      Declare global properties for reuse and control of script
     ==================================================================== -->

<!-- For project source files  -->
<property name="src.dir" location = "src/de/test"/> 
<property name="common.link" location = "../test-common/common"/> 
<!-- For compiled/output files. -->
<property name="build.dir" location = "build/source"/>
<!-- For class libraries and dependency files. -->
<property name="lib.dir" location = "lib"/>
<property name="sdk.dir" location = "../android-sdk-windows/" />    

<!-- ==================================================================== 
      Einstiegspunnkt - Target main
     ==================================================================== -->
<target name="main" depends="compile"  description="getting started">
  <echo message="start main target"/>   
</target>

<!-- ==================================================================== 
      Übersetzen - Target compile
     ==================================================================== -->
<target name="compile" depends="init">
  <echo message="start compile target"/>

  <javac srcdir="${src.dir}" destdir="${build}" debug="on"/>
  <classpath refid="classpath"/> 
</target>

<!-- ==================================================================== 
      Initialisierungen - Target init
     ==================================================================== -->
<target name="init" description="create needed directories">
  <echo message="start init target"/>
  <mkdir dir="${build}"/>
</target>   

</project>

I created this file using examples from websites and the file that Eclipse generated.

I have removed the following external properties files (to simplify the problem):

<property file="local.properties" />
<property file="build.properties" />
<property file="default.properties" />          

I need to include the external .java files from a different src location.

I need to know how to copy the external files in the project and compile everything together.

Thanks, Marcel

Dave Jarvis
  • 30,436
  • 41
  • 178
  • 315
marcel
  • 696
  • 1
  • 10
  • 17

2 Answers2

1

Property files typically contain values for variables that are used throughout the main build script.

To find out why android.jar cannot be found, do this:

  1. Browse to the directory containing build.xml.
  2. Browse up one directory (../).
  3. Browse down into android-sdk-windows/platforms/android-4/.
  4. Make sure android.jar is in that directory.

Otherwise, you will have to change the path to the location of android.jar, relative to the build.xml file.

Dave Jarvis
  • 30,436
  • 41
  • 178
  • 315
  • yes it is inside , I think i do the false thinks in the build.xml – marcel Jun 21 '10 at 09:55
  • @marcel: Use Ant's echo task (http://ant.apache.org/manual/Tasks/echo.html) to display the values of the variables in the script. For some reason the JAR file is not making it into the classpath. – Dave Jarvis Jun 21 '10 at 10:00
  • thank you for your response. I think I include the sdk false or describe it false in the build.xml! Please can you show me how to do it right? Marcel – marcel Jun 21 '10 at 15:45
  • @marcel: I suggest you read more about Ant's tasks and get familiar with how they work. Also, take a look here: http://stackoverflow.com/questions/722774/getting-ant-javac-to-recognise-a-classpath – Dave Jarvis Jun 22 '10 at 03:42
1

You define a property called sdk.dir with the location of your SDK, but you don't use it anywhere else in your build.xml file.

Try adding this in the build.xml file

<path id = "classpath">
    <fileset dir = "${lib.dir}" includes = "*.jar"/>
    <fileset dir = "${sdk.dir}" includes = "*.jar"/>
</path>
user1007074
  • 2,093
  • 1
  • 18
  • 22