由于Jenkins 装在centos环境下,想实现Android程序的编译,只能通过gradle 命令去打包版本apk,以下记录了如何在centos下使用gradle 打包apk

一.安装

  gradle 需要服务器上安装过jdk 和sdk,故而要先安装jdk和sdk

  1.jdk安装(jdk需要1.8)

  下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  选择对应版本进行安装,这里我选择了linux 64 位版本,下载完毕后,上传至linux服务器

  解压:

mkdir /usr/java

mv jdk-8u211-linux-x64.tar.gz /usr/java /usr/java

tar -zvxf  jdk-8u211-linux-x64.tar.gz /usr/java

rm -rf jdk-8u211-linux-x64.tar.gz /usr/java

  配置环境变量:

  vim /etc/profile(没有vim命令的,可以用vi命令进行编辑)

export JAVA_HOME=/usr/java/jdk1..0_211
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

  source /etc/profile

  查看jdk版本:java -version

   

  至此jdk安装成功

2.sdk 安装

  下载:wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip

  安装:

mkdir  -p /opt/android/sdk
unzip sdk-tools-linux-.zip -d /opt/android/sdk
cd /opt/android/sdk/tools/bin/
./sdkmanager "build-tools;27.0.3" "platforms;android-27" "platform-tools" "ndk-bundle" "extras;android;m2repository" "extras;google;m2repository" "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.2" "tools"

  配置环境变量:vim /etc/profile 

export ANDROID_HOME=/opt/android/sdk
PATH=$PATH:$ANDROID_HOME:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$ANDROID_HOME/tools/bin

  sdkmanager --version 查看版本号

  

  3. 安装gradle

  下载地址:http://services.gradle.org/distributions/

  选择合适版本下载

  安装:

mkdir /opt/gradle/
unzip gradle-5.4-all.zip -d /opt/gradle/
rm -rf gradle-5.4-all.zip

  配置环境变量:vim /etc/profile

export PATH=$PATH:/opt/gradle/gradle-5.4/bin

  source /etc/profile

  查看版本:

  gradle -v

  

完整环境变量如下所示

export ANDROID_HOME=/opt/android/sdk
export JAVA_HOME=/usr/java/jdk1..0_211
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin:/opt/gradle/gradle-5.4/bin:$ANDROID_HOME:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$ANDROID_HOME/tools/bin

二、生成证书

Android apk需要有证书,否则无法正常安装,故而需要生成证书,centos 生成证书命令如下:

keytool -genkey -v -keystore myapp.keystore -alias my_alias -keyalg RSA -keysize 2048-validity 365

参数具体含义可通过 keytool -genkey -help 查看

三、打包apk

1.程序从windows Android Studio 上移植过来,故而要更改以下配置,程序目录结构如下:

2.修改local.properties中的sdk地址

sdk.dir=/opt/android/sdk/

3.修改app 目录下的 build.gradle,在android配置项里增加以下内容

signingConfigs {
release {
storeFile file('/home/file_recv/demo/demo/myapp.keystore')
keyAlias 'my_alias'
keyPassword ''
storePassword ''
}
debug {
storeFile file('/home/file_recv/demo/demo/myapp.keystore')
keyAlias 'my_alias'
keyPassword ''
storePassword ''
}
config {
storeFile file('/home/file_recv/demo/demo/myapp.keystore')
keyAlias 'my_alias'
keyPassword ''
storePassword ''
}
}

在buildTypes 添加:signingConfig signingConfigs.release(不加这句无法生效)

buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

4. 编译打包apk

gradle assembleRelease(打包成Release版本)

gradle assembleDebug(打包成Debug版本)

5.版本默认存放位置

app/build/outputs/apk

  

  

centos 下 gradle 编译打包 apk的更多相关文章

  1. fedora/centos下gcc编译出现gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory

    fedora/centos下gcc编译出现gcc: error trying to exec 'cc1plus': execvp: No such file or directory解决办法 翻译自: ...

  2. linux下反编译android apk

    1.所需要的工具 1)apktool,功能:反编译出apk所需要的资源文件和布局设置文件等, 下载地址:https://code.google.com/p/android-apktool/downlo ...

  3. [问题记录]cocos2dx编译打包apk过程&问题记录

    目录: 1. 入门 2. 编译 3. 问题 4. 总结 5. 参考 ------------------------------------------------------------------ ...

  4. 『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse

    一.使用apktool 将 apk反编译生成程序的源代码和图片.XML配置.语言资源等文件 具体步骤: (1)下载反编译工具包:apktool 官方的打不开 http://apktool.shouji ...

  5. centos下安卓构建打包太慢

    最近不清楚什么情况,在linux下构建安卓打包时,很慢,很慢...... 之前还是好好的,一个构建三四分钟,现在尽然要两三个小时,人都要崩溃了.... 当时据说公司用的联通网有问题了,正在处理,可是网 ...

  6. 几种常用库在CentOS下的编译

    1操作环境 通过命令查看操作系统版本信息: [root@localhost ~]# cat /proc/version Linux version 3.10.0-327.el7.x86_64 (bui ...

  7. Mac 下反编译Android APK

    准备工作:安装ApkTool.dex2jar.JD-GUI 安装ApkTool 1.下载ApkTool.大家可以从 https://ibotpeaches.github.io/Apktool/inst ...

  8. Linux(centos)下mysql编译安装教程

    Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...

  9. gradle自动化打包apk

    前堤是要在安卓项目中配置好gradle.build脚本 ## !/bin/sh ## 项目名 ##使配置文件生效,否则会报gradle:命令找不到 source /etc/profile TARGET ...

随机推荐

  1. 第九周周二总结&&第九周周三计划

    周二的主题提取使用LDA模型进行了简单的测试,效果还可以.主要是提取的分词的结果,LDA:随机生成文章各个主题比例,再根据各个主题随机生成词,词与词之间的顺序关系被彻底忽略了,这就是LDA眼中世间所有 ...

  2. mybatis中<include>标签的作用

    MyBatis中sql标签定义SQL片段,include标签引用,可以复用SQL片段 sql标签中id属性对应include标签中的refid属性.通过include标签将sql片段和原sql片段进行 ...

  3. web app升级—带进度条的App自动更新

    带进度条的App自动更新,效果如下图所示:   技术:vue.vant-ui.5+ 封装独立组件AppProgress.vue: <template> <div> <va ...

  4. Codeforces Round #553 (Div. 2) E 贡献

    https://codeforces.com/contest/1151/problem/E 题意 一条长n的链,每个点上有值\(a[i]\),定义\(f(l,r)\)为该区间的\(值\)所代表的点留下 ...

  5. Paper | Quality assessment of deblocked images

    目录 1. 故事 2. 失真变化 3. 方法(PSNR-B) 4. 实验 这篇文章提出了一个PSNR-B指标,旨在衡量 压缩图像的块效应强度 或 去块效应后的残留块效应强度(比较去块效应算法的优劣). ...

  6. H5开发 连接蓝牙打印机 打印标签(斑马ZR628)

    1.连接蓝牙打印机(先用手机自带蓝牙进行配对),然后绑定出已配对的蓝牙设备(用来选择/切换打印机之用),代码如下 已配对蓝牙设备,中显示的就是已连接的,点击一下即可 代码: <!DOCTYPE ...

  7. (十八)golang--defer关键字

    在函数中,程序员经常需要创建资源(比如,数据库连接,文件句柄,锁等),为了在函数执行完毕后,及时释放资源,go设计者提供defer(延时机制) 用defer申明的语句不会立即执行,而是被存入到defe ...

  8. Unity Shader NPR 卡通渲染

    卡通渲染的主要原理包含两个方面: 1.轮廓线的描边效果 2.模型漫反射离散和纯色高光区域的模拟 描边: 描边的实现方法采用将模型的轮廓线顶点向法线(或顶点)的方向扩展一定的像素得到.也可通过边缘检测( ...

  9. 数据迁移最快方式,多线程并行执行 Sql插入

    前言: 由于系统升级,新开发的系统对数据验证,及数据关联做了很多优化,现需要将原历史版本的数据迁移到新系统中:原数据库大约有 1千多万数据,大约 50个表. 历史数据库命名为:A. 新系统库暂命名为 ...

  10. C# 消息队列之 RabbitMQ 进阶篇

    Ø  简介 在之前的 C# 消息队列之 RabbitMQ 基础入门 中介绍了 RabbitMQ 的基本用法,其实要更全面的掌握 RabbitMQ 这个消息队列服务,我们还需要掌握以下内容: 1.   ...