我在无头Linux构建服务器上设置了Jenkins服务器和Android SDK。我通过典型的"Android create project…"命令创建了一个Android项目。
在我"cd"进入新项目后,我可以在命令行上作为jenkins用户成功地"ant clean debug"。我在我的Jenkins工作区目录(.Jenkins/workspace/<项目名称>)中运行这个:
# su jenkins
$ ant clean debug
.... successful ....
然而,当Jenkins作业构建时,我得到的目标"调试"不存在于项目"ProjectName"错误中
我将sdk.dir变量设置为我的Android sdk目录,因此Jenkins日志中的命令运行方式如下:
$ ant -Dsdk.dir=/opt/java/android clean debug
我已经将整个android SDK文件夹的权限设置为777:
# chmod -R 777 /usr/java/android/android-sdk
我不知道我还错过了什么?为什么命令会在命令行上运行,但作为Jenkins作业却不成功?
谢谢!
您是否在jenkins尝试的同一位置运行命令行ant构建?
仔细检查
.jenkins/workspace/<project-name>
目录,以确保它具有与您从命令行手动运行的项目文件相同的项目文件。
经过几天的沮丧和好奇,事实证明,删除项目并使用完全相同的设置重新创建它解决了这个问题。与此同时,我又创建和删除了几个作业,有时它们会出现上面提到的错误,有时它们不会。即使工作的设置完全相同(逐字逐句),它有时也能工作,有时则不然。很抱歉,我不知道如何解决此问题,只能删除作业,重新创建它,然后重试!
祝你好运!
我也遇到了同样的问题。然而,让我头疼了一段时间,我还是解决了这个问题。因此,如果你想在命令行上运行ant target,你必须使用"ant target name"(例如ant debug)。但要让jenkin运行相同的目标,您应该只使用目标名称而不使用ant(例如debug)。
不确定为什么会这样。但这为我解决了问题。