起由 :因为开发中build项目失败,提示了Gradle相关问题 ;所以在好奇心的驱使之下,抽时间好好梳理了一下Gradle方面的知识 - -~
Gradle 相关
- Android Gradle - Gradle、Gradle plugin 基础认知
- Android Gradle - AndroidStudio 中 Gradle 依赖全解
- Android Gradle - 全面加速 Gradle Build 编译
- Android Gradle - Gradle常见异常
Gradle Version(Gradle版本) 、Android Gradle plugin Version(Gradle 插件版本)俩者概念别混淆,请往下看 ~
基础了解
首先要了解 Gradle
和 Gradle plugin
并不是一回事儿,它们的 作用各不相同,而是相辅相成
~
如果 Gradle 与 Android Plugin for Gradle 俩者的版本不对应,会导致项目build失败!!!
Gradle、Android Plugin for Gradle
在Gradle
依赖中gradle.wrapper.properties
的一行设置,有俩种写法:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
bin
和all
的zip
有何区别?
bin
是编译后的二进制发布版all
还包含了源码和文档,比bin
大了几十兆,两者其余没有区别
Gradle
相对官方
Gradle
是一个基于 Apache Ant
和 Apache Maven
概念的项目自动化建构工具
。它使用一种基于 Groovy
的特定领域语言(DSL)来声明项目设置,抛弃了基于 XML 的各种繁琐配置。
大白话
简单来说,Gradle
是一种项目构建工具
,它可以帮你管理项目中的差异、依赖、编译、打包、部署 ......
,你可以定义满足自己需要的构建逻辑,写入到 build.gradle
中供日后复用。
Android Plugin for Gradle
Gradle
是一个构建工具,但它需要特定的插件来工作。Android Plugin for Gradle
即是 Gradle
的 Android
插件。
Android Studio
构建系统基于 Gradle
,Gradle
的 Android 插件
添加了特定于构建 Android
应用程序的几项功能。虽然 Android
插件通常以 Android Studio
的锁定步骤更新,但插件(以及其余的 Gradle 系统)可以独立于 Android Studio 运行,并单独更新
。
对应关系
Gradle
是一个独立运行的程序,不但可以与AndroidStudio
协同工作还可以和Eclipse
等IDE
配合使用。 但由于Gradle
发展速度比较快,导致Gradle版本不一,故每个 Android 插件版本
(Android Plugin for Gradle
)需要与特定的 Gradle 版本相匹配
才能编译成功。为了获得最佳性能,应该使用最新版本的 Gradle
和 Android
插件。
关于对应的版本对应关系,可以参考 Android官方开发文档,如果需要下载Gradle最新版本,可以通过 Gradle下载地址 进行下载
插件、Gradle(早期)
插件、Gradle
2022/10/27:更新7.3
2022/03/14:更新7.0-7.2
2021/06/23:更新4.2.0+
2020/11/11:更新3.5.0-4.1.0+
2019/09/02:初次更新
插件版本 | 所需的最低 Gradle 版本 |
---|---|
8.0 | 8.0 |
7.4 | 7.5 |
7.3 | 7.4 |
7.2 | 7.3.3 |
7.1 | 7.2 |
7.0 | 7.0 |
4.2.0+ | 6.7.1 |
AndroidStudio、插件
Android Studio 版本 | 所需插件版本 |
---|---|
Flamingo - 2022.2.1 | 3.2-8.0 |
Electric Eel - 2022.1.1 | 3.2-7.4 |
Dolphin - 2021.3.1 | 3.2-7.3 |
Chipmunk - 2021.2.1 | 3.2-7.2 |
Bumblebee - 2021.1.1 | 3.2-7.1 |
Arctic Fox - 2020.3.1 | 3.1-7.0 |
Gradle、Gradle plugin 版本查看方式
集中查看
File - Project Structure - Project
查看Gradle
版本信息
Gradle
版本图
分别查看
- 查看
Gradle
版本
- 查看
Android plugin Version
版本
Gradle、Android Gradle plugin Version俩种形态的解决方式
静态设置
目前仅有Gradle设置方式
- 设置加载本地的Gradle
- 查看Gradle在本机的存储位置
找到 gradle\caches
空间(一般位于C盘的用户目录下,如果找不到请在文件右上角直接搜索;)
建议:删除不用的gradle版本 !以此在保证caches控件有足够的存储空间 > <~
动态设置
包含Gradle与Android Gradle plugin Version
修改对应Project的build.gradle中的com.android.tools.build:gradle:版本号为提示版本
如修改
classpath 'com.android.tools.build:gradle:3.1.1'
为classpath 'com.android.tools.build:gradle:3.2.1'
;
Android Plugin for Gradle 的最新版本(不过个人感觉好像此资源网站很久没有更新了~)
修改gradle-wrapper.properties
中distributionUrl
上的版本号与当前Gradle
版本号一致
如修改
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
为distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip;
如果自动下载失败,可以尝试通过此处下载,然后进行本地关联 ~ ~
趣味场景 ~
部分开发者会在动态设置的时候,尝试直接以 + 来进行依赖,如:
直接将 classpath 'com.android.tools.build:gradle:2.3.0-beta1
改为 classpath 'com.android.tools.build:gradle:2.3.0+
解决
但是有的人表示 :不应该在版本号中使用动态依赖关系
,例如 'com.android.tools.build:gradle:2.+';
主要因为新版本在稳定性、差异性、兼容性方面可能有所欠缺,使用此功能可能导致意外的版本更新和难以解决的版本差异。(后半句话总感觉说不出的绕口)
借鉴文章