由于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. 设计模式-抽象工厂模式(AbstractFactory)(创建型模式)

    //以下代码来源: 设计模式精解-GoF 23种设计模式解析附C++实现源码 //Product.h #pragma once class AbstractProductA { public: vir ...

  2. python名片 项目

    ---恢复内容开始--- 综合应用 —— 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ...

  3. P2186 小Z的函数栈

    有点恶心的模拟(代码写整齐一点不就好了) 以下情况算错: 1.运行中有数的绝对值大于1000000000 2.除以和取模的时候第一个数为0 3.取栈顶元素时栈内元素不够 上代码 #include< ...

  4. 阿里Sentinel整合Zuul网关详解

    前面我们讲解了Sentinel整合Spring Cloud Gateway,详细请查看文章:阿里Sentinel支持Spring Cloud Gateway啦 目前来说,大部分公司线上的网关应该是Zu ...

  5. 数据仓库005 - 复习Linux shell命令 - crontab调度 sh脚本 后台执行 软连接

    一.crontab调度 对于linux 自带crontab而言,      xxx.sh的一般编写格式以#!/bin/bash 解释器开头,可在脚本中加入: date 但是,shell脚本执行 需要 ...

  6. LeetCode 151:给定一个字符串,逐个翻转字符串中的每个单词 Reverse Words in a String

    公众号:爱写bug(ID:icodebugs) 翻转字符串里的单词 Given an input string, reverse the string word by word. 示例 1: 输入: ...

  7. 分布式应用的未来 — Distributionless

    作者丨阿里云高级技术专家 至简(李云) 在技术变革推动社会发展这一时代背景下,大量支撑规模化分布式应用的技术创新.创造与创业应用而生,Could Native.Service Mesh.Serverl ...

  8. 【题解】Puzzle [Uva1399]

    [题解]Puzzle [Uva1399] 传送门:\(\text{Puzzle [Uva1399]}\) [题目描述] 给定 \(m\) 和 \(n\),表示有 \(m\) 种不同的字符(大写字母\( ...

  9. 【mybatis】mybatis传参的几种方式

    参考地址: https://my.oschina.net/liuzelin/blog/2966633

  10. Linux CentOS内核升级

    1. 说明 正在使用的阿里云服务器报了几个内核漏铜,使用自带[一键修复]需要额外的支付费用,所以尝试采用升级系统内核的方式来修复漏洞. 1.1 服务器参数 操作系统:CentOS 7.4 64位 当前 ...