起由 :因为开发中build项目失败,提示了Gradle相关问题 ;所以在好奇心的驱使之下,抽时间好好梳理了一下Gradle方面的知识 - -~
目录 :
- Gradle 、Android Plugin for Gradle与俩者区别
- 查看Gradle 版本与 Android plugin Version 版本
- Gradle与Android plugin Version俩种形态的解决方式
Gradle 、Android Plugin for Gradle与俩者区别
- 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 和 Android Plugin for Gradle 的区别
Gradle是一个独立运行的程序,不但可以与AndroidStudio协同工作还可以和Eclipse等IDE配合使用。 但由于Gradle发展速度比较快,导致Gradle版本不一。
故需要每个 Android 插件版本(Android Plugin for Gradle)需要与特定的 Gradle 版本相匹配才能编译成功。为了获得最佳性能,应该使用最新版本的 Gradle 和 Android 插件。
如Gradle 与 Android Plugin for Gradle 俩者的版本不对应,会导致build失败!
详情可以参考Android官方开发文档
如需下载Gradle最新版本,可以通过Gradle下载地址进行下载
查看Gradle 版本与 Android plugin Version 版本
- 方式一
查看Gradle版本
查看 Android plugin Version 版本
- 方式二
步骤 1:
步骤 2:
Gradle与Android plugin Version俩种形态的解决方式
静态设置(仅有Gradle设置)
-
设置加载本地的Gradle
-
查看Gradle在本机的存储位置
找到 gradle\caches 空间(一般位于C盘的用户目录下,如果找不到请在文件右上角直接搜索;)
建议:删除不用的gradle版本 !以此在保证caches控件有足够的存储空间 > <~
动态设置 (包含Gradle与Android 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.+';
使用此功能可能导致意外的版本更新和难以解决的版本差异。
当然 ,以上这样处理结果如何;所遇问题如何;我都不太清楚,因为毕竟没有亲自去尝试 ~ ~ !
借鉴文章