Android unit test using ant with R18 library project

I have the same problems as in this question: Android unit test using ant with library project

I tried both methods that were suggested in the question, but in the r18 version for Android tools I get:

NTServicesTest/build.xml:110: Reference jar.libs.ref not found. 

I’m not sure who did this if I didn’t follow the recipe for a workaround to answer the original question or something changed in r18 android tools.

my installation folder is in the proj folder that contains ..:

NTServices, NTServicesTest, NTServicesTestApp

@Snicolas workaround I changed my NTServicesTest / project.properties to look like this:

 # Project target. target=android-15 tested.android.library.reference.1=../NTServices 

And my NTServicesTest / build.xml looks like this: (to the right of the version tag)

  <import file="${sdk.dir}/tools/ant/build.xml" /> <!-- override "compile" target in platform android_rules.xml to include tested app external libraries --> <!-- Compiles this project .java files into .class files. --> <target name="-compile" depends="-build-setup, -pre-build, -code-gen, -pre-compile"> <do-only-if-manifest-hasCode elseText="hasCode = false. Skipping..."> <!-- If android rules are used for a test project, its classpath should include tested project location --> <condition property="extensible.classpath" value="${tested.project.absolute.dir}/bin/classes" else="."> <isset property="tested.project.absolute.dir" /> </condition> <condition property="extensible.libs.classpath" value="${tested.project.absolute.dir}/${jar.libs.dir}" else="${jar.libs.dir}"> <isset property="tested.project.absolute.dir" /> </condition> <echo message="jar libs dir : ${tested.project.target.project.libraries.jars}"/> <javac encoding="${java.encoding}" source="${java.source}" target="${java.target}" debug="true" extdirs="" includeantruntime="false" destdir="${out.classes.absolute.dir}" bootclasspathref="android.target.classpath" verbose="${verbose}" classpath="${extensible.classpath}" classpathref="jar.libs.ref"> <src path="${source.absolute.dir}" /> <src path="${gen.absolute.dir}" /> <classpath> <!-- steff: we changed one line here !--> <fileset dir="${tested.android.library.reference.1}/bin/" includes="*.jar"/> <fileset dir="${extensible.libs.classpath}" includes="*.jar" /> </classpath> <compilerarg line="${java.compilerargs}" /> </javac> <!-- if the project is instrumented, intrument the classes --> <if condition="${build.is.instrumented}"> <then> <echo>Instrumenting classes from ${out.absolute.dir}/classes...</echo> <!-- It only instruments class files, not any external libs --> <emma enabled="true"> <instr verbosity="${verbosity}" mode="overwrite" instrpath="${out.absolute.dir}/classes" outdir="${out.absolute.dir}/classes"> </instr> <!-- TODO: exclusion filters on R*.class and allowing custom exclusion from user defined file --> </emma> </then> </if> </do-only-if-manifest-hasCode> </target> 
+2
android unit-testing ant
source share
2 answers

Just rename classpathref = "jar.libs.ref" to classpathref = "project.libraries.jars".

+6
source share

yes it worked. in R18, this property modifies the .libraries.jars project, but in performing this task we did not change this value

+2
source share

All Articles