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

Bau*_*aub 4 ant continuous-integration android 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
Run Code Online (Sandbox Code Playgroud)

... /path/to目录的完整路径在哪里.我在这里简化了它.

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

# ProGuard
proguard.config=proguard.cfg

# Project target.
target=android-10
android.library=true
Run Code Online (Sandbox Code Playgroud)

它确实存在.所有这些文件都是这样的:

LS

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

use*_*140 10

好吧,我也遇到了这个问题.

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

例如,/ home/myfolder/project> ant debug

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

然后,路径将变为/ home/myfolder/project/path/to/library

  • 在上面的例子中,解决方案是将project.properties中的路径指定为:../../../path/to/library (4认同)