赞
踩
起由 :因为开发中build项目失败,提示了Gradle相关问题 ;所以在好奇心的驱使之下,抽时间好好梳理了一下Gradle方面的知识 - -~
Gradle 相关
Gradle Version(Gradle版本) 、Android Gradle plugin Version(Gradle 插件版本)俩者概念别混淆,请往下看 ~
首先要了解 Gradle
和 Gradle plugin
并不是一回事儿,它们的 作用各不相同,而是相辅相成
~
如果 Gradle 与 Android Plugin for Gradle 俩者的版本不对应,会导致项目build失败!!!
在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
是一个基于 Apache Ant
和 Apache Maven
概念的项目自动化建构工具
。它使用一种基于 Groovy
的特定领域语言(DSL)来声明项目设置,抛弃了基于 XML 的各种繁琐配置。
大白话
简单来说,Gradle
是一种项目构建工具
,它可以帮你管理项目中的差异、依赖、编译、打包、部署 ......
,你可以定义满足自己需要的构建逻辑,写入到 build.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下载地址 进行下载
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 |
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 |
File - Project Structure - Project
查看 Gradle
版本信息Gradle
版本图Gradle
版本Android plugin Version
版本目前仅有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.+';
主要因为新版本在稳定性、差异性、兼容性方面可能有所欠缺,使用此功能可能导致意外的版本更新和难以解决的版本差异。(后半句话总感觉说不出的绕口)
借鉴文章
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。