0
点赞
收藏
分享

微信扫一扫

使用Jenkins搭建Android自动打包环境


概述

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目;监控外部调用执行的工作。
对于我们开发工程师来说,我们只管写代码,至于怎么打包,测试,我们是不需要过多关注的。而现在比较流行的方案是:使用Jenkins搭建Android自动打包。

Jenkins环境搭建

软件环境:
windows7 64bit;
jdk1.8
android sdk
gradle2.10

配置Tomcat环境变量

找到path加上;%CATALINA_HOME%\lib启动tomcat。tomcat的下载地址:​​http://tomcat.apache.org/​​,如:

E:\pack\apache-tomcat-8.5.12

使用Jenkins搭建Android自动打包环境_windows

搭建Jenkins环境

下载地址:​​https://jenkins.io/index.html​​​,将下载的jenkins.war包直接放到tomcat下的webapps目录下,然后启动tomcat即可安装完成。接下来使用​​http://localhost:8080/jenkins​​登录。

第一次使用的时候,需要配置一下用户。

使用Jenkins搭建Android自动打包环境_windows_02

使用Jenkins搭建Android自动打包环境_java_03

用户权限配置

点击“系统管理” –> “Configure Global Security”。

使用Jenkins搭建Android自动打包环境_jdk_04

插件安装,添加git,gradle

进入系统管理,管理插件。选择插件,及安装插件,完成后重启Tomcat,再次进入jenkins。

使用Jenkins搭建Android自动打包环境_jdk_05

使用Jenkins搭建Android自动打包环境_java_06

创建项目

对于Jenkins,每一个任务都是job,所以我们需要把自己的job映射到jenkins上.

使用Jenkins搭建Android自动打包环境_jdk_07

选择Git为项目管理工具,并配置相关信息.

使用Jenkins搭建Android自动打包环境_windows_08

使用Jenkins搭建Android自动打包环境_jdk_09

Build选项,选择Gradle方式,设置Gradle命令,一般为clean build.

使用Jenkins搭建Android自动打包环境_jdk_10

使用Jenkins搭建Android自动打包环境_android_11

使用Jenkins搭建Android自动打包环境_java_12

在Task命令中输入:

clean build --stacktrace --info

Build File选项输入:

build.gradle

设置Build后,生成apk的位置;有错误等信息时,发邮件通知。

使用Jenkins搭建Android自动打包环境_jdk_13

使用Jenkins搭建Android自动打包环境_android_14

Build构建项目

使用Jenkins搭建Android自动打包环境_java_15

使用Jenkins搭建Android自动打包环境_android_16

构建中遇到的常见问题

1,编码问题:当你进入jenkins系统管理页面,会出现如图提示,可修改tomcat的server.xml配置,在Connector 标签添加上URIEncoding=”UTF-8”。

2,在Jenkins中利用Gradle编译项目时,可能会出现以下错误:

java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager  
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

解决:打开Tomcat bin目录下catalina.bat,注销下面代码。

rem set"JAVA_OPTS=%JAVA_OPTS%%LOGGING_MANAGER%"
rem set"JAVA_OPTS=%JAVA_OPTS%%LOGGING_CONFIG%"

3,环境变量配置问题

Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence.
java.lang.RuntimeException: SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

解决办法:

Go to Jenkins > Manage Jenkins > Configure System
Check “Environment variables”
add name: ANDROID_HOME, value -> your android sdk dir
click “add”
SCROLL DOWN CLICK SAVE

4,Android系统的环境变量不能被jenkins调用导致编译失败,需要在jenkins里面配置环境变量,报错信息如下:

* What went wrong:
A problem occurred configuring root project 'BloodGlucose'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

使用Jenkins搭建Android自动打包环境_android_17

解决方法:在系统管理->环境变量里面新增一个全局环境变量。

使用Jenkins搭建Android自动打包环境_java_18

5,Gradle版本不对,导致编译失败。报错信息:

* What went wrong:
A problem occurred eval(232, 232, 232); background: rgb(249, 249, 249);">

* What went wrong:
Build file 'D:\CI\jenkins-1.620\workspace\Build_HBGMS_BloodGlucose\build.gradle' does not exist.

使用Jenkins搭建Android自动打包环境_java_19

解决方法:根据实际情况配置build.gradle文件的路径及名称。

使用Jenkins搭建Android自动打包环境_java_20


举报

相关推荐

0 条评论