由于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. 历届试题 青蛙跳杯子-(bfs)

    题目:http://lx.lanqiao.cn/problem.page?gpid=T448 题意:有两个字符串例如*WWBB和WWBB*,*每次能往左或右跳1-3步,与原位置的字符交换,问最少步数跳 ...

  2. mysql数据库的批量数据导入与导出,性能提升。

    少量数据批量导入:1. 先从数据库把唯一键的值查询出来,放在列表2. 将导入的数据遍历取出,看是否存在列表中,若不在,说明数据库没有.3. 定义两个空列表,一个做为插入数据,一个做为更新数据4. 步骤 ...

  3. JAVA的addAll方法

    List和collections工具类都有这个方法!

  4. 基于web公交查询系统----管理员公交站点管理页面实现

    主要用到内容:vue,coreui bootstrap框架,Ajax,springmvc搭建的接口,css之类的都是顺手拈来的简单的界面设计 网页代码: <!DOCTYPE html> & ...

  5. java 常见高级开发面试题 非算法等特定岗 一

    基础1.List和Set区别 List:1.可以允许重复的对象. 2.可以插入多个null元素. 3.是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序. 4.常用的实现类有 Arra ...

  6. fiddler 抓取winform wcf包

    修改客户端配置 <system.net> <defaultProxy> <proxy bypassonlocal="false" usesystemd ...

  7. poj-1104 Robbery

    Robbery Time Limit: 1000MS   Memory Limit: 32768K Total Submissions: 1249   Accepted: 504 Descriptio ...

  8. 压缩20M文件从30秒到1秒的优化过程

    文章来源公众号:IT牧场 有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去.之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改 ...

  9. 【06】Nginx:文件下载 / 用户认证

    写在前面的话 在公司内部一般都会存在 FTP / SAMBA 这样类似的文件服务器,虽然这类的程序都可以对用户的权限进行控制,但我们有时候其实只需要一个简单的下载页面,类似软件仓库.用户不管在哪里打开 ...

  10. 【maven】【IDEA】idea中使用maven编译项目,报错java: 错误: 找不到符号 【2】

    =================================================================================== idea中使用maven编译项目 ...