使用gradle编译安卓APK

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用gradle编译安卓APK相关的知识,希望对你有一定的参考价值。

一、安装JDK

  在安装Gradle之前需要先安装JDK,由于安装的是Gradle是4.4所以需要安装JDK1.8。

  之前编译总是提示如下错误就是由于先安装的jdk1.7然后安装的1.8造成的,在Gradle启动文件中使用了JAVAHOME并且写成了1.7的目录,所以无论怎么配置都是最后脚本中的生效,所以提示版本不对。

java.lang.UnsupportedClassVersionError: com/android/build/gradle/LibraryPlugin : Unsupported major.minor version 52.0

1、安装jdk

2、设置环境变量

  设置 JAVA_HOME 

JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_171

  设置path

Path=%PATH%;%JAVA_HOME%\\bin

3、测试配置是否正确

  执行如下命令后提示java1.8即表示成功

java -version

 

二、安装Gradle

1、下载Gradle

  Gradle下载网址:​​http://services.gradle.org/distributions/​

  由于项目使用4.4编译所以下载4.4:​​http://services.gradle.org/distributions/gradle-4.4.1-all.zip​

2、解压缩

  创建如下目录:

     lrs : 是当前用户目录,需要根据实际修改;

    .gradle : 在资源管理器中无法创建请使用dos命令创建 mkdir .gradle

C:\\Users\\lrs\\.gradle\\wrapper\\dists

  将下载的zip文件存放到上边创建的目录中,将zip解压缩,解完后类似如下目录

C:\\Users\\lrs\\.gradle\\wrapper\\dists\\gradle-4.4-all\\gradle-4.4

3、设置环境变量(目录需要根据你的实际情况修改)

  设置 GRADLE_HOME

GRADLE_HOME=C:\\Users\\lrs\\.gradle\\wrapper\\dists\\gradle-4.4-all\\gradle-4.4

  设置PATH

Path=%PATH%;%GRADLE_HOME%\\bin

4、测试配置是否正确

  在cmd中执行如下命令如果显示当前版本为4.4即安装正确

gradle -v

 

三、安装Android SDK

1、下载安装包

  官网,需FQ:http://developer.android.com/sdk/index.html 

  不需FQ:http://www.androiddevtools.cn/

  根据你的平台选择相应下载

使用gradle编译安卓APK_java

2、解压缩、安装

  将下载的压缩包解压缩到此目录中

C:\\Users\\lrs\\AppData\\Local\\Android\\Sdk\\sdk-tools

3、允许协议

  在cmd中进入此目录

C:\\Users\\lrs\\AppData\\Local\\Android\\Sdk\\sdk-tools\\bin

  运行如下命令,所有都回答Y接受协议

sdkmanager.bat --licenses

4、设置环境变量

   设置 ANDROID_HOME 

ANDROID_HOME=C:\\Users\\lrs\\AppData\\Local\\Android\\Sdk

  注意 ANDROID_HOME 指到解压缩目录的上一级,也就是这个 sdkmanager.bat 往上的两级目录

使用gradle编译安卓APK_解压缩_02

5、安装 Android SDK Build-Tools 26.0.2

  再次进入如下目录

C:\\Users\\lrs\\AppData\\Local\\Android\\Sdk\\sdk-tools\\bin

  执行如下命令显示所有sdk,相应的 sdkmanager 可以参见 https://developer.android.com/studio/command-line/sdkmanager

sdkmanager --list

  根据list的内容安装 build-tools;26.0.2,如下命令

  在linux上不需要安装此库,直接运行步骤7即可

sdkmanager build-tools;26.0.2

6、下载源代码

7、clean

  在cmd中进入源码目录执行如下命令,安装过程中会下载一些需要的sdk

gradlew clean

  由于墙的问题可能运行上面命令很慢卡在哪里,可以设置国内的一个代理服务器方法如下:

  创建 gradle.properties 文件这个目录在当前用户下

vi /root/.gradle/gradle.properties

  插入如下内容保存即可,重新执行编译命令。

# http代理
systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

# https代理
systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost

  注:有的时候代理上也下不来更换代理或者将代理去掉再试一次。

8、编译

  执行类似如下命令编译,需要根据你的工程改app的内容

  编译过程中gradlew会根据需要下载需要的sdk,由于网络问题可以会提示连接超时错误,多试几次即可,或者根据步骤9配置一个代理

gradlew :app:assembleDebug # 编译 debug 包,当前用的是多渠道编译所以没有使用参数的话会编译所有渠道的debug包
gradlew :app:assembleRelease # 编译 release 包,当前用的是多渠道编译所以没有使用参数的话会编译所有渠道的release包

gradlew :app:assembleBaiduDebug # debug包,指定编译百度渠道的debug包
gradlew :app:assembleYingyongbaoDebug # debug包,指定编译应用宝渠道的debug包
gradlew :app:assembleBaiduRelease # # release包,指定编译百度渠道的release包
gradlew :app:assembleDebugRelease # release包,指定编译应用宝渠道的release包

 

  多渠道配置在build.gradle文件中如下:

flavorDimensions "default"
productFlavors
kuan dimension "default"
xiaomi dimension "default"
qh360 dimension "default"
baidu dimension "default"
wandoujia dimension "default"
yingyongbao dimension "default"

9、设置使用代理下载sdk

  执行如下命令设置代理服务器地址,其它参数也可参见 https://developer.android.com/studio/command-line/sdkmanager

sdkmanager.bat --proxy=ubuntu.buct.edu.cn | 80

  代理服务器见下表

1、北京化工大学镜像服务器地址:
IPv4: ubuntu.buct.edu.cn/ 端口:80
IPv4: ubuntu.buct.cn/ 端口:80
IPv6: ubuntu.buct6.edu.cn/ 端口:80

2、大连东软信息学院镜像服务器地址:
mirrors.neusoft.edu.cn 端口:80

3、郑州大学开源镜像站:
mirrors.zzu.edu.cn 端口:80

 


以上是关于使用gradle编译安卓APK的主要内容,如果未能解决你的问题,请参考以下文章

Android打包流程

安卓 自动签名 以及如何验证一个apk包是用你的签名文件签名的

理解使用Gradle编译打包Android apk

React-native APK打包

Android Studio 编译apk,so库一起打包

apk是啥文件,Android文件中怎么反编译