Gradle version 和 Android Plugin Version
常跟 Android Studio 打交道,应该对 Gradle version 和 Android Plugin Version 不陌生,Gradle version 和 Android Plugin Version 是 Android studio 中用于配置 Gradle 和 Android Plugin for Gradle 的版本设置项,自己很多时候都会混淆它俩,所以查找资料,小总结一下。
说干就干!
一、Gradle 和 Android Plugin for Gradle
1、Gradle
Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言(DSL)来声明项目设置,抛弃了基于 XML 的各种繁琐配置。
简单来说,Gradle 是一种构建工具,它可以帮你管理项目中的差异、依赖、编译、打包、部署 …,你可以定义满足自己需要的构建逻辑,写入到 build.gradle 中供日后复用。
2、Android Plugin for Gradle
Gradle 是一个构建工具,但它需要特定的插件来工作。Android Plugin for Gradle 即是 Gradle 的 Android 插件。
Android Studio 构建系统基于 Gradle,Gradle 的 Android 插件添加了特定于构建 Android 应用程序的几项功能。虽然 Android 插件通常以 Android Studio 的锁定步骤更新,但插件(以及其余的 Gradle 系统)可以独立于 Android Studio 运行,并单独更新。
3、Gradle 和 Android Plugin for Gradle 的关系
Gradle 的每个 Android 插件版本(Android Plugin for Gradle)需要与特定的 Gradle 版本相匹配才能编译成功。为了获得最佳性能,应该使用最新版本的 Gradle 和 Android 插件。
二、Gradle 和 Android Plugin for Gradle 的更新
1、更新 Android Plugin for Gradle
当更新 Android Studio 时,可能会收到一个提示,将 Gradle 的 Android 插件自动更新为最新版本。可以选择接受更新,也可以根据项目的构建要求手动指定版本。
可以在 Android Studio 中的 File > Project Structure > Project 菜单中的 Android Plugin Version 或顶级 build.gradle 文件中指定 Gradle 版本的 Android 插件。该插件版本适用于该 Android Studio 项目中内置的所有模块。以下示例将 Gradle 的 Android 插件从 build.gradle 文件设置为2.3.3版本:
buildscript {...dependencies {classpath 'com.android.tools.build:gradle:2.3.3'}
}
注意:不应该在版本号中使用动态依赖关系,例如 ‘com.android.tools.build:gradle:2.+’。使用此功能可能导致意外的版本更新和难以解决的版本差异。
如果指定的插件版本尚未下载,则在下次构建项目时,或当点击 Android Studio 菜单栏中的 Tools > Android > Sync Project with Gradle Files 时,Gradle 将会下载(能翻则翻:P)。
ps:通过 https://jcenter.bintray.com/com/android/tools/build/gradle/ 可查看 Android Plugin for Gradle 的最新版本。
2、更新 Gradle
可以在 Android Studio 中的 File > Project Structure > Project 菜单中指定 Gradle 版本,也可以通过在 gradle/wrapper/gradle-wrapper.properties 文件中编辑 Gradle 分布引用。以下示例将 gradle-wrapper.properties 文件中的 Gradle 版本设置为3.3。
...
distributionUrl = https\://services.gradle.org/distributions/gradle-3.3-all.zip
...
基于国内某些不明原因,可能会一直下载编译中,这时,可通过 https://services.gradle.org/distributions/ 直接下载所需的 Gradle 版本,解压到 Android Studio 的 ** \ .gradle\wrapper\dists目录下,然后再通过上面的两种方法修改指定版本号为已下载解压的版本号。【亲测有效】
参考文章:
https://developer.android.com/studio/releases/gradle-plugin.html
https://www.zhihu.com/question/30432152
https://stackoverflow.com/questions/21792598/relation-between-gradle-version-and-gradle-build-tool-version
Gradle version 和 Android Plugin Version相关推荐
- 彻底搞懂Gradle、Gradle Wrapper与Android Plugin for Gradle的区别和联系
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )
文章目录 一.Android Plugin DSL Reference 文档下载 二.Android Plugin DSL Reference 文档查看 一.Android Plugin DSL Re ...
- android5.1 sdk version,java - Android SDK version 23.6 - Stack Overflow
Does it support java 8 yet? Eclipse is displaying this as a problem, surely it does support 8 by now ...
- MAC Android Studio| Error: The android gradle plugin version 3.0.0-alpha1 is too old
building 报错 The android gradle plugin version 3.0.0-alpha1 is too old, please update to the latest v ...
- android studio gradle与gradle plugin version离线下载 从别的电脑上复制
gradle plugin version下载 本地路径:C:\Users\FT\.gradle\caches\modules-2\files-2.1\com.android.tools.build\ ...
- Android Studio解决Plugin [id: ‘com.android.application‘, version: ‘x.x.x‘, apply: false] was not found
运行gradlew失败报错: Plugin [id: 'com.android.application', version: '7.2.0', apply: false] was not found ...
- Manifest merger failed : Attribute meta-data#android.support.VERSION@value..
在添加leakcanary依赖时出现如下问题 Manifest merger failed : Attribute meta-data#android.support.VERSION@value va ...
- 解决编译失败 Attribute meta-data#android.support.VERSION@value value=(26.0
报错如下: Attribute meta-data#android.support.VERSION@value value=(26.0.0) from [com.android.support:des ...
- ERROR: This version of Android Studio cannot open this project, please retry with Android Studio 3.
很多同学出现这样的问题,在导入我的项目的时候会同步失败,原因是Android Studio的版本比较低,需要升级到3.6及以上,因为我的Android Studio就是3.6.1,所有项目都是这个版本 ...
最新文章
- Piranha实验总结
- mysql 分库分表,真的能支持服务无限扩容么?
- java 通配符 泛型_java中泛型之类型通配符(?)
- nanodet学习笔记 tensorrt
- 多层神经网络(BP算法)介绍
- activity 变成后台进程后被杀死_Android 后台运行白名单,优雅实现保活
- 保证MQ消费消息的幂等性,真可以用版本号的方式?
- 推荐四款可视化工具,解决 99% 的可视化大屏项目!
- 郝斌c语言视频笔记,郝斌老师C语言专题笔记
- 计算机网络网线制作与测试结果,《计算机网络》网线制作实验报告(1).doc
- PTA17-126 将数组中的数逆序存放 简单C语言
- Linux操作系统面试题
- 瑜欣平瑞通过注册:年营收6.6亿 胡云平一家三口为实控人
- 中国海外文物拍卖天价
- 别被别人抢走了你的时间
- day12-HTML、CSS与blog页面讲解
- 详解服务器异构计算FPGA基础知识
- 微信公众平台开发学习
- 图像特征提取与匹配之SIFT算法
- B站离线多机房架构实践