• 使用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 FilesJavajdk1.8.0_171
    

      设置path

    Path=%PATH%;%JAVA_HOME%in
    

    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:Userslrs.gradlewrapperdists
    

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

    C:Userslrs.gradlewrapperdistsgradle-4.4-allgradle-4.4
    

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

      设置 GRADLE_HOME

    GRADLE_HOME=C:Userslrs.gradlewrapperdistsgradle-4.4-allgradle-4.4

      设置PATH

    Path=%PATH%;%GRADLE_HOME%in

    4、测试配置是否正确

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

    gradle -v
    

    三、安装Android SDK

    1、下载安装包

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

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

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

    2、解压缩、安装

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

    C:UserslrsAppDataLocalAndroidSdksdk-tools
    

    3、允许协议

      在cmd中进入此目录

    C:UserslrsAppDataLocalAndroidSdksdk-toolsin
    

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

    sdkmanager.bat --licenses
    

    4、设置环境变量

       设置 ANDROID_HOME 

    ANDROID_HOME=C:UserslrsAppDataLocalAndroidSdk
    

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

    5、安装 Android SDK Build-Tools 26.0.2

      再次进入如下目录

    C:UserslrsAppDataLocalAndroidSdksdk-toolsin
    

      执行如下命令显示所有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

  • 相关阅读:
    python__基础 : 类属性,类方法,静态方法
    python__基础 : 类的继承,调用父类的属性和方法
    python__基础 : 类的__init__,__str__,__del__方法
    Python__关于列表的引用 以append操作为例
    HTML5 Canvas 绘制图片不显示的问题
    MySQL 查询排除指定字段、自定义变量、动态执行SQL
    .Net系列 Transaction 事务
    Redis 基本操作
    C# 数值计算、转换
    详解.NET IL代码
  • 原文地址:https://www.cnblogs.com/rslai/p/9114706.html
Copyright © 2020-2023  润新知