android--jenkins+gradle+android自动化构建apk步骤(转)
第一步,安装jenkins,这个网上教程挺多的。
第二步,下载并配置gradle。下载地址http://www.gradle.org/
解压gradle至某路径下,如/usr/local/lib/gradle-1.12
配置环境变量:
$ vi /etc/profile
在该文件底部加上
# gradle
export GRADLE_HOME=/usr/local/lib/gradle-1.12 (刚解压的路径)
export PATH=$PATH:$GRADLE_HOME/bin
:wq!后
$ source source profile
$ echo $GRADLE_HOME
检查是否配置成功。
第三步,在jenkins中配置gradle。
Jenkins-》系统管理-》管理插件-》选择"gradle plugin"下载并安装,网络不好的话也可自行下载插件安装。
下载成功后,系统管理-》系统设置-》gradle安装-》配置一下gradle_home并保存,如下图。
第四步,下载android SDK,并配置ANDROID_HOME
同样在/etc/profile底部加上
#android
export ANDROID_HOME=/opt/adt-bundle-linux-x86_64-20140702/sdk
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
并source使生效。
第五步,Jenkins新建project任务
Jenkins-》新建-》构建一个自由风格的软件项目-》
源码管理:选择具体的版本控制软件,并填写项目URL,如本人为svn,只需在Repository URL填具体项目svn地址,其它为默认。
Build periodically H 9 * * 1-6代表每周一至周六上午九点中的某一时间自动build一次。点击每一项后面的问号有详细说明可根据需求自行设置。
选择刚刚系统设置中的gradle版本,clean build代表每次都clean了再build。可自行配置命令行
构建后可能需要发邮件或者获得apk下载,如下,选择Archive the artifacts并填写apk路径。
选择该project job-》左边“状态”-》最后一次成功的构建结果,并点击下载apk。
最后列举一下我构建中出现的问题,供参考:
1、local.properties中sdk.dir需设置成ANDROID_HOME路径
2、build.gradle的compileSdkVersion、buildToolsVersion需与ANDROID_HOME中的SDK一致
3、/opt/adt-bundle-linux-x86_64-20140702/sdk/extras/android路径下可能缺少m2repository包,需要补全,否则可能无法识别出external-library里的support-v4/v7包并依赖,原因不详。
4、我是在google develper android官网下载的64位,linux版本为64位,结果报aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory,原因是64为OS需运行32为应用程序缺少链接库所致,$ yum install glibc.i686下载库即可。不知道为啥官网上下下来的都会这样。
5、build.gradle脚本中可能需要加上lintOptions选项。
android{
lintOptions {
abortOnError false
}
}
http://www.2cto.com/os/201410/343255.html
android--jenkins+gradle+android自动化构建apk步骤(转)的更多相关文章
- JMeter接口测试系列:Jmeter+jenkins+ant 的自动化构建
在JMeter接口测试不断深入的过程中,发现可以和jenkins和ant一起搭配进行自动化的构建.下面是jmeter自动化构建的整理笔记. 准备环境 需要本机上确定安装了jmeter.ant和jenk ...
- Jenkins敏捷开发 自动化构建工具
一.序言 Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面. 所谓自动化构建是按照一定 ...
- android studio gradle自动签名构建实现
我为自己代言: 一.在android studio中生成签名文件. 1.在android studio 选中项目,在菜单栏中选择Build. 2.点击Generate Signed APK选项卡. 3 ...
- Jenkins+Gradle+Git自动打apk包,并上传到ftp
软件安装: 1.安装Jenkins.git.AndroidSDK 2.配置AndroidSDK环境变量 ANDROID_HOME:D:\Androidsdk PATH:%ANDROID_HOME%\p ...
- Jenkins部署.net自动化构建
1.环境部署: windows server 2008R2环境 2.相关软件 SVN(源代码管理器:jenkins通过插件从源代码管理器下载代码) Jenkins(主角)地址:http://f ...
- Jenkins添加Windows自动化构建方案
一.为Jenkins添加Windows节点 这里需要填写远程工作目录,启动方法一项一定要选择"Launch agent via Java Web Start"一项,其它的保持默认. ...
- Jenkins和maven自动化构建java程序
转自:http://www.cnblogs.com/gao241/archive/2013/04/08/3008380.html,版权归原作者所有. Jenkins是一个非常出色的持续集成服务器,本文 ...
- windows jenkins dotnet core 自动化构建webapi
jenkins环境搭建好 注意一下几点: - 需要安装git - 需要安装dotnet core sdk环境 - 遇到这里报错,提示 Repository URL 错误的话,如果确实没有配置错误,重启 ...
- jenkins shell脚本自动化构建阿里云k8s上应用
#!/bin/bash source /etc/profile cd /mnt/workspace/weifeng-ui-pre/ npm i && npm run build rm ...
随机推荐
- MVC超链接
<1> return RedirectToAction(Index); //跳转到Index控制器 <%@ Page Language="C#" Inherits ...
- POJ 1742 Coins ( 单调队列解法 )
id=1742" target="_blank">题目链接~~> 做题感悟:第一次做的时候用的二进制优化.可是没注意到是险过.so也没去看单调队列的解法. 解 ...
- Redis的字典(dict)rehash过程源代码解析
Redis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表.Redis小到能够存储几万记录的CACHE,大到能够存储几千万甚至上亿的记录(看内存而定),这充分说明Redis作为缓冲的强大.Re ...
- Java參数传递方式
原文:http://blog.sina.com.cn/s/blog_59ca2c2a0100qhjx.html,我作了些改动并添加了一个实例,添加对照 本文通过内存模型的方式来讨论一下Java中的參数 ...
- 在VS2012中使用GitHub
注册GitHub账号(DeanZhouLin) https://github.com/ 向GitHub中添加一个仓库(Test) *创建完成后,记录该仓库的地址:https://github.com/ ...
- The Swift Programming Language 中国版
iSwifting社会的 Swift 兴趣交流群:303868520 iOS 微信公众账号:iOSDevTip Swift 微信公众账号:SwiftDev iSwifting社区 假设你认为这个项目不 ...
- python开发_tkinter_小球完全弹性碰撞游戏
python开发_tkinter_小球完全弹性碰撞游戏 完成这个小球的完全弹性碰撞游戏灵感来自于: 下面是我花了一周下班时间所编写的一个小球完全弹性碰撞游戏: 游戏初始化状态: 最下面的游标和修改 ...
- 恢复js文件在windows默认打开方式
解决办法: 运行 regedit 打开注册表编辑器,定位 "HKEY_CLASSES_ROOT" > ".js" 这一项,双击默认值将数值数据改为&quo ...
- struts2原理分析
正在使用struts之前,我们必须明白servlet执行.因为不管什么J2EE框架支持servlet的. 和servlet正在运行的进程.简单地说,例如,下面的: 1.server接收请求 2.一个过 ...
- 【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中的基本文本和button以及各种跳跃
(1)navigationBar导航栏可以被看作是self.navigationController一个属性导航控制器,它可以由点直接表示self.navigationController.navig ...