AndroidStudio、gradle、buildToolsVersion概述,版本对应关系

每次gradle 或者studio 有推荐更新后,项目重新sync后都会报错,提示更新相应的其他版本,比如AndroidStudio、gradle、buildToolsVersion版本;

概念:
Android SDK Build-Tools: 是编译 Android 应用所需 Android SDK 的一个组件,安装在 /build-tools/ 目录中。(而buildToolsVersion是android构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于…your_sdk_path/build-tools/XX.XX.XX,通过SDK Manager 更新;)您应始终让 Build Tools 组件保持最新状态。为此,您可以使用 Android SDK 管理器下载该组件的最新版本。如果您使用的是 Android Plugin for Gradle 3.0.0 或更高版本,那么您的项目会自动使用该插件指定的默认版本的 Build Tools。要使用其他版本的 Build Tools,请在模块的 build.gradle 中使用 buildToolsVersion 进行指定,如下所示:
android {
buildToolsVersion “29.0.0”

}

Gradle:是一个工具,同时它也是一个编程框架。使用这个工具可以完成app的编译打包等工作;
CompileSdkVersion:是告诉gradle 用哪个SDK版本来编译,和运行时要求的版本号没有关系;使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。(仅编译时生效,与运行时无关)
buildToolsVersion: android构建工具的版本,在SDK Manager中安装选择版本,buildToolsVersion的版本需要>=CompileSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序;
新建一个项目,看build.gradle文件的配置,如下:
在这里插入图片描述

minSdkVersion (lowest possible) <=
targetSdkVersion == compileSdkVersion (latest SDK)

gradle版本和com.android.tools.build:gradle配置的版本关系
之前会奇怪,为什么一更新gradle 插件版本,会报错
如下图,红色部分配置的就是android gradle 插件的版本,gradle插件的版本号和gradle版本号是对应的,较新的插件版本需要要求较新版的gradle,所以提示你更新gradle;
在这里插入图片描述
1.1 Android Studio
Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。

基于Gradle的构建支持
Android 专属的重构和快速修复
提示工具以捕获性能、可用性、版本兼容性等问题
支持ProGuard 和应用签名
基于模板的向导来生成常用的 Android 应用设计和组件
功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览

1.2 Gradle
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
1.3 Gradle插件
其实应该是AndroidStudio Gradle Plugin,也就是AndroidStudio用于开发Android项目的gradle插件。
所以说,Gradle插件和Gradle不是一个东西。
1.4 三者的关系
①Gradle插件会有版本号,每个版本号又对应有一个或一些 Gradle发行版本(一般是限定一个最低版本),也就是我们常见的类似gradle-4.1-all.zip这种东西;如果这两个版本对应不上了,那你的工程构建的时候就会报错。对应关系参看Gradle插件和Gradle版本对应关系。
②Android Studio 3.0 之后自动将插件版本升级到3.0.0,所以我们也需要对应地把Gradle升级到4.1才行。(后面就是因为这个填坑)
③Android Gradle Plugin又会跟 Android SDK BuildTool有关联(版本有对应的关系),因为它还承接着AndroidStudio里的编译相关的功能,这也是我们要在项目的 local.properties 文件里写明Android SDK路径、在build.gradle 里注明 buildToolsVersion 的原因。Android Gradle Plugin 本质上就是 一个AS的插件,它一边调用 Gradle本身的代码和批处理工具来构建项目,一边调用Android SDK的编译、打包功能,从而让我们能够顺畅地在AS上进行开发。
二.Gradle插件,Gradle,Android SDK BuildTool(buildToolsVersion)
1 Gradle插件的配置
在As工程目录的build.gradle文件中配置(当然也可以在工程目录文件夹下去找到文件配置)如下图:
在这里插入图片描述
图中我的插件版本是3.1.3是最新的版本,当然你可以根据自己的需要配置。(配置好后As会自动去下载)
2 Gradle配置
Grale配置的意义在于:在项目创建或者编译的时候如何查找Gradle的位置和使用什么版本的Gradle。
配置步骤:

1.在gradle-wrapper-propertiies中配置Gradle的版本
2.在本机缓存目录(用户主目录)中存在gradle-4.4-all文件夹或者在As的安装目录中存在。(两个目录下都不一定存在)

解释一下“本机缓存目录”和“As的安装目录

1.本机缓存目录(用户主目录下),例如我的是:C:\Users\gongxiaoou.gradle\wrapper\dists
2.As的安装目录:C:\Program Files\Android\Android Studio\gradle
两个存储位置实例如下图:

在这里插入图片描述
As的安装目录:
在这里插入图片描述
2.1 在gradle-wrapper-propertiies中配置Gradle(主要是版本)
如下图在As的gradle包的gradle-wrapper-propertiies中配置(当然也可以在工程目录文件夹下去找到文件配置)如下图:
在这里插入图片描述
Gradle的版本配置相对较复杂一些。先解释一下gradle-wrapper-propertiies中各行的含义和作用:

1.zipStoreBase和zipStorePath组合在一起,是下载的gradle-4.4-all.zip所存放的位置。
2.zipStorePath是zipStoreBase指定的目录下的子目录。
3.distributionBase和distributionPath组合在一起,是解压gradle-4.4-all.zip之后的文件的存放位置。
4.distributionPath是distributionBase指定的目录下的子目录。
5.distributionUrl:Gradle下载地址

Gradle查找过程如下:这里涉及配置查找规则

  1. Project-level setting中选择Use default gradle wrapper (recommended),如下图
    在这里插入图片描述
    则先到本机的缓存目录中寻找,找到则使用,找不到则到Gradle下载地址去下载。下载完成会将保存一份到本机的缓存目录。
    2.Project-level setting中选择Use local gradle distribution,只是将上面的勾选对象变换一下,这里不粘贴图了。
    先到As的安装目录中查找,而不是去1.中本地缓存目录中查找。

如果自己有gradle的压缩包或者去官网下载好gradle的下载地址,而怕在As中下载的过程中出问题或者下载失败,那么我们可以采取如下的方法:
1. Project-level setting中选择Use default gradle wrapper (recommended),然后将gradle的压缩包(记住是压缩包,不解压)复制到本地缓存目录下的“乱码”文件夹中,例如我的是C:\Users\gongxiaoou.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv8o6njlyu5op1中,然后clean一下As中工程,此时As会完成压缩包的解压,gradle配置成功。

2.Project-level setting中选择Use local gradle distribution,将gradle压缩包解压,放入As安装包目录下,例如我的是:C:\Program Files\Android\Android Studio\gradle中。

2.2 Android SDK BuildTool(buildToolsVersion)
在升级完gradle的版本之后,可能会由于buildToolsVersion过低造成提示错误的情况出现,这时候你就按照提示下载需要的Android SDK BuildTool版本就可以了。这里的gradle版本和Android SDK BuildTool的版本对应关系和gradle插件与gradle对应关系相似,都是前者确定之后,后者只需要更新到符合要求的最低版本即可,当然也可以是最新的只要匹配就行。
Android Studio gradle插件版本和gradle版本对应关系
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值