我有一个使用我的IDE构建的现有项目。我想使用“android update”命令为该项目生成一个ant构建文件。
构建文件生成正常,但构建失败,因为它没有构建我的libs目录中的一些jar文件。
我想弄清楚在libs目录中告诉ant使用一些外部jar文件构建的正确方法。我该怎么做?它是build.properties中的属性吗?我需要以某种方式修改build.xml吗?或者完全有不同的解决方案吗?
答案 0 :(得分:32)
但构建失败,因为它不是 用我的一些jarfiles建造 我的libs目录。
你的错误信息是......什么?我怀疑你可能会错误地解释错误信息。
我想弄清楚正确的方法 告诉蚂蚁建立一些 我的libs中的外部jar文件 目录。我该怎么做?
只需将它们放在libs/
中,因为Ant会将所有内容添加到您的构建路径中。有关示例,请参阅this project,this project和this project。
答案 1 :(得分:14)
我花了一些时间试图让Facebook API与ant一起工作。我的诀窍是将它添加到我的default.properties文件中。
android.library.reference.1=../Facebook
其中../Facebook包含AndroidManifest.xml等。真正的关键是相对路径。不要使用绝对路径,因为Ant似乎将您的项目目录视为根目录。
对于您从源代码中包含的其他库项目,这应该适用。
答案 2 :(得分:8)
我正在处理类似的问题。我正在使用标准Ant build.xml(由Android SDK生成)在Jenkins上构建Android项目。我还引用了另一个带有一些共享域类的Java项目。在Eclipse中没有问题。域项目是项目引用。但是在Jenkins上,这个domain.jar是由Maven构建的,Android项目无法访问它。
我最终通过在build.xml的末尾添加它来解决它:
<target name="-pre-build">
<copy todir="${jar.libs.dir}">
<fileset
dir="../path-to-another-project/target"
includes="*.jar" />
</copy>
</target>
这会将所有jar从另一个项目的目标目录复制到我的Android项目的“libs”目录中。在Android编译开始之前,会自动调用-pre-build Ant目标。
答案 3 :(得分:1)
我同意Mark,但是,如果您计划进一步修改构建脚本 - 那么您需要自定义它。将任务从android / platforms / android-PLATFORMVERSION / templates / android_rules.xml带到build.xml并修改你想要修改的内容。包括外部库的位置。
答案 4 :(得分:0)