我已遵循此处的说明:https://www.digitalocean.com/community/tutorials/how-to-build-android-apps-with-jenkins以及我通过搜索在网络上找到的其他项目,但仍然无法让我的Android应用程序在Jenkins上构建。
这是我在jenkins构建中启用调试后出现的错误:
com.android.prefs.AndroidLocation$AndroidLocationException: Unable to get the Android SDK home directory.
23:37:55.727 [ERROR] [org.gradle.BuildExceptionReporter] Make sure the environment variable ANDROID_SDK_HOME is set up.
23:37:55.727 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.prefs.AndroidLocation.findHomeFolder(AndroidLocation.java:220)
23:37:55.727 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.prefs.AndroidLocation.getFolder(AndroidLocation.java:141)
23:37:55.727 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.ide.common.signing.KeystoreHelper.defaultDebugKeystoreLocation(KeystoreHelper.java:84)
23:37:55.727 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.builder.signing.DefaultSigningConfig.initDebug(DefaultSigningConfig.java:59)
23:37:55.727 [ERROR] [org.gradle.BuildExceptionReporter] at com.android.build.gradle.internal.dsl.SigningConfig.<init>(SigningConfig.java:52)
23:37:55.727 [ERROR] [org.gradle.BuildExceptionReporter] ... 79 more
23:37:55.728 [ERROR] [org.gradle.BuildExceptionReporter]
23:37:55.728 [LIFECYCLE] [org.gradle.BuildResultLogger]
23:37:55.728 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
23:37:55.728 [LIFECYCLE] [org.gradle.BuildResultLogger]
23:37:55.728 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 3.839 secs
有些网页表示问题可能是ANDROID_HOME
未设置且脚本显示ANDROID_SDK_HOME
无法到达。我相信我已经设置了这两个,所以我在构建步骤中添加了回声。这是来自上面相同输出的结果:
+ echo ANDROID_HOME /opt/android-sdk-linux
ANDROID_HOME /opt/android-sdk-linux
+ echo ANDROID_SDK_HOME /opt/android-sdk-linux
ANDROID_SDK_HOME /opt/android-sdk-linux
[Gradle] - Launching build.
我的机器人安装在/opt/android-sdk-linux
。
转到/opt/jenkins/workspace/[my project]
我跑了gradle clean build。我这样做了一个权限问题,所以我将chmod -R +wx
运行到整个工作区目录。我的gradle构建在命令提示符下运行得很干净。
回到詹金斯并且现在在我的项目上构建了它,但它仍然完全如上所述。
Jenkins在tomcat下运行/opt/tomcat
。 Tomcat以一个Damon脚本开头,这就是我如何设置Jenkins使用的环境变量。
我在构建服务器上运行Ubuntu 16.04 64位。
每个人都有权/opt/android-sdk-linux
thomas@testbox:~$ ls -ld /opt/android-sdk-linux/
drwxrwxrwx 13 thomas thomas 4096 Sep 13 23:09 /opt/android-sdk-linux/
想法?