在libs填充之前计算的android libs?

时间:2012-06-19 01:53:02

标签: android ant android-build

这是一个奇怪的。我的-pre-compile中有一个custom_rules.xml目标。在这里,一些JAR被复制到libs文件夹中。

如果我执行干净构建,它会在运行时失败,因为这些库不会包含在.apk中。查看ant -v ...的输出,Dx不处理这些库。因此,虽然正在针对这些库编译项目,但它们不包括在Dx阶段。

如果我随后做了一个非干净的ant debug,一切都很好,因为-pre-compile复制的JAR在构建开始时已经存在。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

我最终通过从SDK中.../tools/ant/build.xml精心添加echo语句来解决这个问题。

.../libs任务中定义了包含-setup中Dx库的路径。这是在-pre-compile-pre-build之前的链中,因此如果您将JAR复制到.../libs文件夹中的任何一个点,那就太晚了。

我最终覆盖了-setup任务,因此,

  <target name="-setup" depends="-prepare-libs, android_rules.-setup"/>

  <target name="-prepare-libs">
    ... build / copy libs in to .../libs here
  </target>

请注意调用已覆盖的-setup任务的语法...在project标记中定义的项目名称附加了任务名称,如build.xml中导入的{{1}}中所定义SDK。