一、安装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、下载安装包

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

  不需翻墙:http://www.androiddevtools.cn/

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

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 往上的两级目录

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

  

参见文档:

  https://blog.csdn.net/love4399/article/details/77164500

  https://blog.csdn.net/strangenightmare/article/details/52233395

使用gradle编译安卓APK的更多相关文章

  1. centos 下 gradle 编译打包 apk

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

  2. apktool 在mac下的使用 -反编译安卓apk文件

    1.下载apktool 点击这里下载 ,里面有两个文件,一个是.jar,一个是自己写的脚本.sh 注:最新的apktool.jar 文件可以点击这里下载 .sh脚本是自写脚本可不用更新最新,下载的ja ...

  3. 使用Gradle编译release apk报错:Please correct the above warnings first

    在开发SDK的过程中,遇到了一个研发,使用了自己的SDK之后遇到了各种问题,于是我们自己帮忙接入. 所有代码都接入完成之后,准备export出一个release包,但是此时却报错: 此时出现了很多的w ...

  4. 反编译安卓apk以及jar包

    https://www.jianshu.com/p/c9b553cf2b51 https://blog.csdn.net/bzlj2912009596/article/details/78268896

  5. [COCOS2DX]交叉编译实践+速度优化(vs2012修改win32代码+修改makefile+编译安卓项目包+部署安卓项目包到Eclipse+运行apk)

    通过前面的部署过程可以知道cocos2dx的开发过程如下: 1.VS2012完成修改 2.因为指定了CPP文件位置,ndk可以通过jni方式完成C++文件的编译,运行以下命令完成proj.androi ...

  6. 专注于C#.Net WPF软件开发-软件反编译-软件破解-逆向-靖芯科技-包括安卓APK反编译

    靖芯科技提供.Net软件开发,软件修改定制二次开发,软件破解,反编译,逆向等各项优质服务: 包括安卓APK软件反编译. 包括但不限于C#,WPF,Surface,Winform,Asp.net.JAV ...

  7. 安卓apk反编译

    在win环境反编译安卓APP的.apk文件 安卓apk 反编译为 Java源码图文教程 Android安全攻防战,反编译与混淆技术完全解析(上)

  8. 安卓---apk反编译

    转自:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮 ...

  9. 【转】安卓apk反编译、修改、重新打包、签名全过程

    首先明确,反编译别人apk是一件不厚道的事情.代码是程序员辛苦工作的成果,想通过这种手段不劳而获,是不对的.这也说明,代码混淆是非常重要的.本文抱着学习的态度,研究在一些特殊的情况下如果有需要,该怎么 ...

随机推荐

  1. Java EE之JSTL(下)

    3.使用国际化和格式化标签库(FMT命名空间) 如果你希望创建部署在Web上,并面向庞大的国际化用户的企业级Java应用程序,那么你最终需要为世界的特定区域进行应用程序本地化.这将通过国际化实现(通常 ...

  2. Java入门:用户登录与注册模块1(实践项目)——分析

    任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括 ...

  3. MongoDB 安装及开启关闭

    开启关闭的方式: 命令行 输入 net start mongodb 就打开mongo的服务了 输入 net stop mongodb 关闭服务 验证是否成功的方式: 在浏览器中输入 http://lo ...

  4. 使用docker配置etcd集群

    docker配置etcd集群与直接部署etcd集群在配置上并没有什么太大差别. 我这里直接使用docker-compose来实现容器化的etcd部署 环境如下: HostName IP etcd1 1 ...

  5. NO.6LINUX基本命令

    1.练习1 ) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cd / cat /etc/passwd /etc/group>1.txt 2) 将用户信息数据库文 ...

  6. Java基础-IO流对象之字符类(FileWrite与FileReader)

    Java基础-IO流对象之字符类(FileWrite与FileReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见编码简介 1>ASCII 我们知道计算机是 ...

  7. C# 在程序中控制IIS服务或应用程序池关闭重启

    //停止IIS服务 ServiceController sc = new ServiceController("iisadmin"); if(sc.Status=ServiceCo ...

  8. wsimport生成客户端 指定编码格式

    wsimport -encoding utf- -keep -s D:\temp -p com.lawyer.user -verbose http://服务地址?wsdl -encoding : 指定 ...

  9. Redis学习三:Redis数据类型

    一.Redis的五大数据类型 1.String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安 ...

  10. puppeteer截图

    puppeteer是谷歌官方出品的一个通过 DevTools 协议控制 headless Chrome 的Node库.可以通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进 ...