离线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
}
}
1
2
3
4
5
6
7
8
9
10
其中 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
}
}
1
2
3
4
5
6
7
8
9
10
11
12
其中 D:\Android Stuido\gradle\m2repository 就是 AS 安装目录下的 maven 仓库路径
注意,如果有其他的依赖包需要从远程仓库下载的话,最好能够全部放到本地去依赖,或者把需要依赖的包放到本地的 m2repository 仓库中一份
使用gradlew命令行离线打包apk
在终端/cmd 中,Project 目录下,使用gradlew命令打包apk,注意在最后加上 –offline 这个命令,表示使用离线模式,例如 gradlew assembleRelease –offline
---------------------
作者:nnnnrx
来源:CSDN
原文:https://blog.csdn.net/u012123160/article/details/73275912
版权声明:本文为博主原创文章,转载请附上博文链接!