简体   繁体   English

在linux下构建来自jenkins的android项目 - 构建失败,找不到导入的build.xml

[英]Building android project from jenkins under linux - build fails, cannot find imported build.xml

I'm trying to build simple android project from Jenkins, but build fails with output message (verbose): 我正在尝试从Jenkins构建简单的android项目,但构建失败并输出消息(详细):

Building in workspace /var/lib/jenkins/jobs/MyProj/workspace
[MyProj] $ ant -file build.xml help -v
Apache Ant version 1.8.1 compiled on October 13 2010
Buildfile: /home/ramps/MyProj/build.xml
Detected Java version: 1.6 in: /usr/lib/jvm/java-6-openjdk/jre
Detected OS: Linux
parsing buildfile /home/ramps/MyProj/build.xml with URI = file:/home/ramps/MyProj/build.xml
Project base dir set to: /home/ramps/MyProj
parsing buildfile jar:file:/usr/share/ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml with URI = jar:file:/usr/share/ant/lib/ant.jar!/org/apache/tools/ant/antlib.xml from a zip file
 [property] Loading /home/ramps/MyProj/local.properties
 [property] Loading /home/ramps/MyProj/ant.properties
Importing file /home/ramps/MyProj/custom_rules.xml from /home/ramps/MyProj/build.xml
Cannot find /home/ramps/MyProj/custom_rules.xml imported from /home/ramps/MyProj/build.xml
Importing file /usr/share/android-sdk-linux/tools/ant/build.xml from /home/ramps/MyProj/build.xml

BUILD FAILED
/home/ramps/MyProj/build.xml:81: Cannot find /usr/share/android-sdk-linux/tools/ant/build.xml imported from /home/ramps/MyProj/build.xml
    at org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:181)
    at org.apache.tools.ant.taskdefs.ImportTask.execute(ImportTask.java:162)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:179)
    at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:82)
    at org.apache.tools.ant.Main.runBuild(Main.java:786)
    at org.apache.tools.ant.Main.startAnt(Main.java:218)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Total time: 0 seconds
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE
  • MyProj is a clean project created via: MyProj是一个通过以下方式创建的清洁项目:

    android create project --name MyProj --package com.myproj --target "android-15" --path MyProj --activity MyProj android创建项目--name MyProj --package com.myproj --target“android-15” - path MyProj --activity MyProj

  • of course file "/usr/share/android-sdk-linux/tools/ant/build.xml" exist. 当然存在文件“/usr/share/android-sdk-linux/tools/ant/build.xml”。

  • "ant help" from shell runs fine. 来自shell的“ant help”运行良好。
  • local.properties contains valid path to android SDK: local.properties包含android SDK的有效路径:

    sdk.dir=/usr/share/android-sdk-linux sdk.dir =的/ usr /共享/ Android的SDK Linux的

Any idea why MyProj/build.xml cannot find "/usr/share/android-sdk-linux/tools/ant/build.xml" ? 知道为什么MyProj / build.xml找不到“/usr/share/android-sdk-linux/tools/ant/build.xml”吗?

Ok, I managed to solve it. 好的,我设法解决了。 User jenkins had no permission to enter android-sdk-linux folder. 用户jenkins无权进入android-sdk-linux文件夹。

In general, when debugging such issues it is very helpful to try to do manually what Jenkins is doing: 通常,在调试此类问题时,尝试手动执行Jenkins正在执行的操作非常有用:

$sudo su jenkins

And now, as jenkins user try to enter folders, create new one etc. 现在,随着jenkins用户尝试输入文件夹,创建新文件夹等。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM