0

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

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

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

任何想法我做错了什么?

4

1 回答 1

0

.../tools/ant/build.xml我最终通过在 SDK 中煞费苦心地添加 echo 语句来解决这个问题。

包含.../libsDx 中的库的路径在-setup任务中定义。这是在-pre-compileor之前的链中-pre-build,因此如果您.../libs在其中任何一个点将 JAR 复制到您的文件夹中,则为时已晚。

我最终覆盖了-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从 SDK 导入的定义。

于 2012-06-19T15:50:58.023 回答