centos 下 gradle 编译打包 apk

时间:2023-12-28 11:08:44

由于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

   centos 下 gradle  编译打包 apk

  至此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 查看版本号

  centos 下 gradle  编译打包 apk

  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

  centos 下 gradle  编译打包 apk

完整环境变量如下所示

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 查看

centos 下 gradle  编译打包 apk

三、打包apk

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

centos 下 gradle  编译打包 apk

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