android LIB是在LIB被填充之前计算的吗?

android LIB是在LIB被填充之前计算的吗?,android,ant,android-build,Android,Ant,Android Build,这是一个奇怪的。在我的custom_rules.xml中有一个-pre-compile目标。在这里,一些jar被复制到libs文件夹中 如果我执行干净的构建,它会在运行时失败,因为这些库没有包含在.apk中。查看ant-v…的输出,Dx没有处理这些库。因此,虽然项目是针对这些库编译的,但它们不包括在Dx阶段 如果我随后执行非干净的ant调试,一切都很好,因为-pre-compile复制的jar在构建开始时就已经存在了 你知道我做错了什么吗?我通过在SDK的../tools/ant/build.x

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

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

如果我随后执行非干净的
ant调试
,一切都很好,因为
-pre-compile
复制的jar在构建开始时就已经存在了


你知道我做错了什么吗?

我通过在SDK的
../tools/ant/build.xml
中添加echo语句,最终找到了答案

包含Dx的
../libs
中的库的路径在
-setup
任务中定义。这是在
-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>

... 在此处生成/复制库到…/libs
请注意调用覆盖的
-setup
任务的语法。。。在从SDK导入的
build.xml
中定义的任务名称后附加在
project
标记中定义的项目名称