我确实遵循了这些教程:
http://www.vogella.com/articles/Jenkins/article.html
https://wiki.jenkins-ci.org/display/JENKINS/Building+an+Android+app+and+test+project
我设置的唯一区别是我没有从存储库中检出。 我在作业本身导入了代码,因此在我的“jobs”目录中,我确实有一个包含2个项目的工作区(普通的android和androidUnitTest项目)。
在尝试构建时,我得到了这个日志:
-build-setup:
[getbuildtools] Using latest Build Tools: 18.0.1
[echo] Resolving Build Target for MainActivity...
[gettarget] Project Target: Android 4.0
[gettarget] API level: 14
[echo] ----------
[echo] Creating output directories if needed...
[echo] ----------
[echo] Resolving Dependencies for MainActivity...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------
[dependency] API<=15: Adding annotations.jar to the classpath.
[dependency] WARNING: unable to write jarlist cache file /Users/Shared/Jenkins/Home/jobs/Jenkins4AndroidTest/workspace/XJenkins/bin/jarlist.cache
[echo] ----------
[echo] Building Libraries with 'debug'...
[subant] No sub-builds to iterate on
-code-gen:
[mergemanifest] Found Deleted Target File
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.'
导致此错误:
/Users/Shared/android-sdks/tools/ant/build.xml:644: java.io.FileNotFoundException: /Users/Shared/Jenkins/Home/jobs/Jenkins4AndroidTest/workspace/XJenkins/bin/AndroidManifest.xml (Permission denied)
at java.io.FileOutputStream.open(Native Method)
在我看来它忽略了我在Invoke Ant
使用的相对路径(“./XJenkins/build.xml”,target:debug)
有没有人有任何提示,提示或解决方案?那真的很棒!
编辑:
我以前遇到过不同的错误(我在教程中提到了一些更多参数用于ant。)错误是这样的:/Users/Shared/android-sdks/tools/ant/build.xml:392: Problem: failed to create task or type checkenv
...这会是一个更好的方法吗?
答案 0 :(得分:1)
在我看来,源的所有权问题。
转到:/Users/Shared/Jenkins/Home/jobs/Jenkins4AndroidTest/workspace/XJenkins/bin/
并执行和:ls -rtl
你应该看到类似的东西:
-rw-r--r-- 1 jenkins jenkins AndroidManifest.xml
如果没有,请使用 chown 命令向jenkins授予权利。 我将在所有目录
上进行个人操作sudo chown -R jenkins:jenkins /Users/Shared/Jenkins
此命令将Jenkins目录中的ALL CONTENT所有权归Jenkins用户所有。
小心:这是假设Jenkins是作为User Jenkins的服务推出的。 例如,如果你在tomcat7上将jenkins作为webapp启动,那么Jenkins用户将是tomcat7,你将拥有所有权的tomcat7