如何build立一个与外部库使用ant的Android应用程序?

我有一个现有的项目,使用我的IDEbuild立良好。 我想使用“ android update ”命令为这个项目生成一个ant buildfile。

构build文件生成正常,但构build失败,因为它不是build立在我的libs目录中的一些jarfiles。

我想找出正确的方法来告诉ant与我的libs目录中的一些外部jar文件。 我应该怎么做? 在build.properties中是属性吗? 我需要修改build.xml吗? 还是有完全不同的解决scheme?

Related of "如何build立一个与外部库使用ant的Android应用程序?"

但构build失败,因为它不是build立在我的libs目录中的一些jarfiles。

而你的错误信息是…什么? 我怀疑你可能会误解错误信息。

我想找出正确的方法来告诉ant与我的libs目录中的一些外部jar文件。 我应该怎么做?

只要将它们放在libs/ ,Ant会将所有内容添加到您的构buildpath中。 看到这个项目 , 这个项目 ,和这个项目的例子。

我花了一些时间试图让Facebook API与ant一起工作。 对我来说,把这个添加到我的default.properties文件。

 android.library.reference.1=../Facebook 

其中../Facebook包含AndroidManifest.xml等。真正的关键是相对path。 不要使用绝对path,因为Ant似乎将您的项目目录视为根目录。

这应该适用于从源代码中包含的其他库项目。

我正在处理类似的问题。 我使用标准Ant build.xml(由Android SDK生成)在Jenkins上构buildAndroid项目。 我也参考了另一个具有一些共享域类的Java项目。 在Eclipse中没有问题。 域项目是一个项目引用。 然而在Jenkins这个domain.jar是由Maven构build的,而且它不能被Android项目访问。

我终于在build.xml的最后添加了这个解决scheme:

 <target name="-pre-build"> <copy todir="${jar.libs.dir}"> <fileset dir="../path-to-another-project/target" includes="*.jar" /> </copy> </target> 

这将从另一个项目的目标目录中的所有jar复制到我的Android项目的“libs”目录。 在编译开始之前,预编译Ant目标会自动调用。

但是,我同意Mark的观点,如果您打算进一步修改您的构build脚本,则需要将其定制。 将任务从android / platforms / android-PLATFORMVERSION / templates / android_rules.xml传送到您的build.xml,并修改任何您想修改的内容。 包括外部库的位置。

参考这个链接,这帮助了我

谷歌播放服务库中的隐藏的build.xml用于谷歌地图V2?