Android Ant 构建在具有两个源文件夹的项目上

标签 android ant

我有一个带有链接源文件夹的项目。该项目依赖于另一个(远程服务)项目,因此通过远程接口(interface)传递的aidl 文件 和类位于两个项目共享的common_src 链接文件夹中。这在 Eclipse 构建中工作得很好,(一个源文件,两个项目,一个项目中的更改反射(reflect)在另一个项目中,就像它应该的那样)。

我现在想从命令行进行 Ant 构建。我设法使用 SDK 工具中的示例 build.xml 获得了另一个项目,该项目具有跨所有目标构建的单个 src 目录。一旦在 build.properties 中定义了 source.dirout.dir,它就会自动导入 ant_rules_r3.xml > 这一切都相当轻松。

转到包含 srccommon_src 文件夹的项目,我无法构建它。首先,我将编译目标及其依赖的所有目标剪切并粘贴到设置任务上方的 build.xml 中。我将元素 common_src 添加并定义到 build.properties 并将下面显示的最后一行添加到 -compile target(复制自 ant_rules_r3.xml) 到 build xml:

  <src path="${source.absolute.dir}" />
  <src path="${gen.absolute.dir}" />
  <src path="${common_src}" /><!--ADDED-->

它在构建过程中更进一步 - 它可以在 common_src 中找到 .java 文件,但找不到 .aidl 文件。毫不奇怪,我意识到 aidl 是一个单独的目标。然后我添加了

<src path="${common_src}" /> 

到构建 xml 中的 -aidl 目标,它失败了:

BUILD FAILED
C:\dev\projects\Eclipse\AndroidWorkspace\MapProject\build.xml:77: aidl doesn't
 support the nested "src" element.

所以这让我很好,真正陷入困境。 理想情况下,我只想修改 build.properties 文件以包含 common_src 并将其传递给 ant_rules_r3.xml,但我想不出这样做的方法。如果有人可以建议如何完成,我将不胜感激。

最佳答案

我有一个类似的问题,但似乎已通过我的 build.properties 文件中的以下设置为我解决了:

source.dir = src;../other_project/src

我使用相对路径将我的 src 链接到 other_project,但您应该可以使用绝对路径。如果这样做,您可能应该将它放在 local.properties 中。

注意:根据 build.properties 中的注释,如果我的 SDK 版本 < 2.0,我会改用它:

source-folder = src;../other_project/src

关于Android Ant 构建在具有两个源文件夹的项目上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088196/

相关文章:

java - Ant 找不到外部定义的 taskdef 所需的类

java - Android Studio - 将目标兼容性设置为 JDK 1.8 后 Gradle 构建失败

java - 如何在我的 Java 代码中使用 Apache Ant 的任务

Android Studio 找不到我的资源

android - 无法从R8配置中删除 “-ignorewarnings”(Android Proguard问题)

java - ant 目标将 war 部署到 tomcat7/webapps

Java Webstart(库)签名

java - tomcat如何使用build.properties和build.xml?

java - 我们可以使用来自android的数据通过Javascript在webview中显示它吗?

java - 服务无法正常工作