hay dos caminos utilizados por -compile como classpathref para compilar pero uno de ellos no se utiliza en Dexing.
<target name="-compile" depends="-build-setup, -pre-build, -code-gen, -pre-compile">
<do-only-if-manifest-hasCode elseText="hasCode = false. Skipping...">
<!-- merge the project's own classpath and the tested project's classpath -->
<path id="project.javac.classpath">
<path refid="project.all.jars.path" />
<path refid="tested.project.classpath" />
</path>
<javac encoding="${java.encoding}"
source="${java.source}" target="${java.target}"
debug="true" extdirs="" includeantruntime="false"
destdir="${out.classes.absolute.dir}"
bootclasspathref="project.target.class.path"
verbose="${verbose}"
classpathref="project.javac.classpath"
fork="${need.javac.fork}">
<src path="${source.absolute.dir}" />
<src path="${gen.absolute.dir}" />
<compilerarg line="${java.compilerargs}" />
</javac>
…
</target>
Estas rutas son “project.all.jars.path” y "tested.project.classpath", pero el “tested.project.classpath" camino no se utilice en Dexing para que pueda modificarlo en el pre -compile objetivo de la siguiente manera:
<target name="-pre-compile" >
<path id="tmp">
<pathelement path="${toString:tested.project.classpath}"/>
<fileset dir=“${exported.jars.dir}” >
<include name="*.jar" />
</fileset>
</path>
<path id="tested.project.classpath"><pathelement path="${toString:tmp}"/></path>
<path id="tmp"/>
</target>
Aquí, anexe el camino de sus tarros exportados a “tested.project.classpath” antes de que comience la compilación usted puede poner “exported.jars.dir” en su hormiga.. archivo de propiedades
Gracias por la respuesta -. entiendo lo que estás diciendo, y debería funcionar ... si hay una ruta de clases utilizado para compilación pero no actuado por la herramienta dex. Cada vez que obtengo el jar en el classpath de compilación, también lo hace dex. ¿Conoces una manera de separarlos? – user1103993
Generalmente, una carpeta que se encuentra en el classpath de compilación no se ha agregado a 'classes.dex'. Necesita exportar explícitamente los JAR que desea compilar en dex. Sin embargo, para su comodidad, las herramientas SDK consideran la carpeta 'libs /' como un caso especial. Cualquier cosa en esta carpeta se agrega automáticamente a 'classes.dex'. Por lo tanto, intente crear una carpeta con un nombre diferente y agréguelo al classpath. Lea [this] (http://tools.android.com/recent/dealingwithdependenciesinandroidprojects) para obtener más detalles. Tenga en cuenta que estos cambios se introdujeron en las herramientas SDK r17. – curioustechizen
Gracias de nuevo por la ayuda. Yo te votaría, pero como novato, no tengo suficiente reputación. – user1103993