离线gradlew命令行打包apk设置

离线gradlew命令行打包apk设置

由于使用命令行 gradlew 命令打包 apk,gradle 和 gradle pluging 等设置都需要配置到相应的配置文件中,所以在 Android Stuido 中的相应设置都不起作用了

gradle离线模式设置

修改 gradle 位置,配置文件位置在于Project目录下 ./gradle/wrapper/gradle-wrapper.proerties

添加或修改 distributionUrl 设置,原值应该是 https://services.gradle.org/distributions/gradle-2.14.1-all.zip 其中 2.14.1 是相应的版本号,在本地没有相关文件时,就会去上面的路径去下载。

将从网上下载好的 gradle 压缩包放到 ./gradle/wrapper/ 目录下

将 distributionUrl 值改为 gradle-3.3-all.zip 即

distributionUrl=gradle-3.3-all.zip

gradle-3.3-all.zip 是我离线打包时需要的 gradle 版本号

android gradle pluging 离线配置

gradle 和 android 的 gradle pluging 是不同的两个东西,但是二者又相互关联,两者的版本号有对应关系才能配合使用

具体版本号对应关系链接

在 Project 中,gradle pluging 的配置位置位于 Project 根目录下 ./build.gradle 文件中,默认如下

buildscript {
    repositories {
        jcenter()
}
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
}

其中 jcenter 是由 JFrog 公司提供的 Bintray 中的 Java 仓库。它是当前世界上最大的 Java 和 Android 开源软件构件仓库。 所有内容都通过内容分发网络(CDN)使用加密 https 连接获取。JCenter 是 Goovy Grape 内的默认仓库,Gradle 内建支持(jcenter()仓库),非常易于在(可能除了 Maven 之外的)其他构建工具内进行配置

com.android.tools.build:gradle:2.2.3 表示的是 gradle pluging 插件的目录、名称以及版本号

需要将这个远程仓库配置为本地仓库才能在离线状态下进行打包

在 Android Studio 安装根目录下 ./gradle 可以发现一个叫做 m2repository 的文件夹,这个就是一个自带的 maven 仓库,查看 ./gradle/m2repository/com/android/tools/build/gradle 目录下是否有离线打包所需要的对应版本的相应文件夹,一般都是有的,如果没有,联网状态下去 ide 中的相关设置里设置为你需要的版本,然后 ide 会自动下载,再把这个目录移到需要离线的环境里覆盖,又或者去jcenter中去挨个下载,自己创建对应文件夹

在 sdk 的根目录下 ./extras 也会有一个名为 m2repository 的文件夹,将这个文件夹中的内容复制,移动到 Android Studio 安装目录下 ./gradle/m2repository 中覆盖

在 Project 根目录下 ./build.gradle 文件中修改为如下内容

buildscript {
    repositories {
        maven{
            url 'file://D:\\Android Stuido\\gradle\\m2repository'
        }
}
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
}

其中 D:\Android Stuido\gradle\m2repository 就是 AS 安装目录下的 maven 仓库路径

注意,如果有其他的依赖包需要从远程仓库下载的话,最好能够全部放到本地去依赖,或者把需要依赖的包放到本地的 m2repository 仓库中一份

使用gradlew命令行离线打包apk

在终端/cmd 中,Project 目录下,使用gradlew命令打包apk,注意在最后加上 –offline 这个命令,表示使用离线模式,例如 gradlew assembleRelease –offline

你可能感兴趣的:(android其他)