Ant构建具有依赖关系的Android项目

时间:2012-09-06 21:44:13

标签: android ant continuous-integration jenkins

我正在尝试通过Ant构建一个应用程序(让我们称之为android-app)依赖于SDK(让我们称之为sdk)。此计算机上未安装Eclipse(出于推理,它是Jenkins的CI框)。

两个项目并排在两个完全独立的目录中。 android-app位于~/.jenkins/jobs/android-app/workspace目录中,sdk位于~/.jenkins/jobs/sdk/workspace目录中。

让我们假设这两个项目都是“vanilla”并且之前没有使用Ant构建。我cd../android-app/workspace目录并运行android update project -p . --library ~/.jenkins/jobs/sdk/workspace。然后我cd../sdk/workspace目录并运行android update project -p .,它也会通过。

此时我cd返回../android-app/workspace目录并运行ant clean build。它失败并出现错误:

BUILD FAILED
/path/to/ant/build.xml:440: 
/path/to/sdk/workspace resolve to a path with no project.properties file for 
project /path/to/android-app/workspace

...其中/path/to是目录的完整路径。我在这里简化了它。

如果我cdsdk工作区并打开project.properties,我会收到以下内容:

# ProGuard
proguard.config=proguard.cfg

# Project target.
target=android-10
android.library=true

确实存在。所有这些文件也是如此:

ls

那么,为什么会失败呢?我究竟做错了什么?我试图提供尽可能多的细节。如果我能提供任何额外的信息,请告诉我。

2 个答案:

答案 0 :(得分:10)

嗯,我也遇到了这个问题。

我使用strace找出到底发生了什么,并发现你在project.properties中指定的路径将附加当前文件夹路径作为其前缀。

例如, / home / myfolder / project>蚂蚁调试

您在project.properties中指定的库是/ path / to / library

然后,路径将成为 /家庭/ MyFolder文件/项目/路径/要/库

答案 1 :(得分:2)

为了填补答案空白,我的Java版本完全关闭了。我非常尴尬。