我有一个现有的项目,使用我的IDE构建良好。我想使用“android update”命令为这个项目生成一个ant构建文件。如何使用ant建立外部库的Android应用程序?
构建文件生成正常,但构建失败,因为它没有与我在我的libs目录中有一些jarfiles构建。
我想找出正确的方式告诉ant与我的libs目录中的一些外部jar文件构建。我应该怎么做?它是build.properties中的属性吗?我需要修改build.xml吗?或者是否有完全不同的解决方案?
我有一个现有的项目,使用我的IDE构建良好。我想使用“android update”命令为这个项目生成一个ant构建文件。如何使用ant建立外部库的Android应用程序?
构建文件生成正常,但构建失败,因为它没有与我在我的libs目录中有一些jarfiles构建。
我想找出正确的方式告诉ant与我的libs目录中的一些外部jar文件构建。我应该怎么做?它是build.properties中的属性吗?我需要修改build.xml吗?或者是否有完全不同的解决方案?
,但因为它不是 建筑,一些jarfiles中我有我的 libs目录生成失败。
而你的错误信息是......什么?我怀疑你可能会误解错误信息。
我想弄清楚的正确方法 告诉蚂蚁一些 外部jar文件建立在我的库 目录。我应该怎么做?
只要将它们放在libs/
中,Ant会将所有内容添加到您的构建路径中。示例参见this project和this project和this project。
但是,如果您打算进一步修改您的构建脚本,那么我同意Mark的意见,而不是您需要将其定制。将任务从android/platforms/android-PLATFORMVERSION/templates/android_rules.xml传送到您的build.xml并修改您想要修改的任何内容。包括外部库的位置。
我花了一段时间试图让Facebook API与蚂蚁一起工作。我的诀窍是将其添加到我的default.properties文件中。
android.library.reference.1=../Facebook
其中../Facebook包含AndroidManifest.xml等。真正的关键是相对路径。不要使用绝对路径,因为Ant似乎将您的项目目录视为根。
这应该适用于您从源代码中包含的其他库项目。
我正在处理类似的问题。我使用标准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项目的“库”目录。 -pre-build Ant目标在Android编译开始之前自动调用。
您应该将custom_rules.xml添加到与build.xml相同的目录中,而不是更改build.xml。将-pre-build目标放在那里,build.xml会自动导入它。 custom_rules.xml可以包含所有的前期和后期构建操作 – wallacer
啊,问题是,我的一个依赖是一个项目的依赖,而不是一个罐子依赖。我会解决这个问题。 – emmby
感谢commonsware。如果你想刺探后续,我在这里有另一个问题:http://stackoverflow.com/questions/2466437/how-to-build-an-android-test-app-with-a -dependency-on-another-app-using-ant – emmby
是的,我看到了一个。我不是Android测试框架的粉丝,所以我不知道那里的答案。抱歉! – CommonsWare