我有一个在Ant中构建的Android项目,我一直在使用系统库:在Eclipse中,我定义了两个系统库,每个系统库由几个jar组成,然后将它们包含在我的项目中。我已经尝试过将这些jar文件复制到使用它们的项目的libs-dir中,但在使用ant编译时仍然会遇到同样的错误。
使用系统库和在libs文件夹中包含jar之间有区别吗?是不是我遗漏了一些东西——也许是在蚂蚁本身中定义系统库的某种方法?
更新:
在执行ant compile 时,它在main_rules.xml中的以下代码上失败
<!-- Generates the R.java file for this project's resources. -->
<target name="-resource-src" depends="-dirs">
<if condition="${manifest.hasCode}">
<then>
<echo>Generating R.java / Manifest.java from the resources...</echo>
<aapt executable="${aapt}"
command="package"
verbose="${verbose}"
manifest="AndroidManifest.xml"
androidjar="${android.jar}"
rfolder="${gen.absolute.dir}">
<res path="${resource.absolute.dir}" />
</aapt>
</then>
<else>
<echo>hasCode = false. Skipping...</echo>
</else>
</if>
</target>
我已经将库添加到编译目标javac任务中,但这似乎也不起作用。
在Ant中,您通常需要显式地将jar放在类路径上。它们不会仅仅通过将它们放在lib目录中而自动添加到类路径中。
在Ant构建文件中查找javac的完成位置,并查看所使用的类路径。您需要更新这个类路径以包含每个jar。