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,请在模块的 adle 中使⽤ buildToolsVersion 进⾏指定,如下所⽰:
android {
buildToolsVersion “29.0.0”
}
Gradle:是⼀个⼯具,同时它也是⼀个编程框架。使⽤这个⼯具可以完成app的编译打包等⼯作;
CompileSdkVersion:是告诉gradle ⽤哪个SDK版本来编译,和运⾏时要求的版本号没有关系;使⽤任何新添加的 API 就需要使⽤对应Level 的 Android SDK。(仅编译时⽣效,与运⾏时⽆关)
buildToolsVersion: android构建⼯具的版本,在SDK Manager中安装选择版本,buildToolsVersion的版本需要>=CompileSdkVersion;⾼版本的build-tools 可以构建低版本编译的android程序;
新建⼀个项⽬,看adle⽂件的配置,如下:
minSdkVersion (lowest possible) <=
targetSdkVersion == compileSdkVersion (latest SDK)
gradle版本和ls.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版本对应关系。
androidsdk安装步骤
②Android Studio 3.0 之后⾃动将插件版本升级到3.0.0,所以我们也需要对应地把Gradle升级到4.1才⾏。(后⾯就是因为这个填坑)
③Android Gradle Plugin⼜会跟 Android SDK BuildTool有关联(版本有对应的关系),因为它还承接着AndroidStudio⾥的编译相关的功能,这也是我们要在项⽬的 local.properties ⽂件⾥写明Android SDK路径、在adle ⾥注明 buildToolsVersion 的原因。Android Gradle Plugin 本质上就是 ⼀个
AS的插件,它⼀边调⽤ Gradle本⾝的代码和批处理⼯具来构建项⽬,⼀边调⽤Android SDK的编译、打包功能,从⽽让我们能够顺畅地在AS上进⾏开发。
⼆.Gradle插件,Gradle,Android SDK BuildTool(buildToolsVersion)
1 Gradle插件的配置
在As⼯程⽬录的adle⽂件中配置(当然也可以在⼯程⽬录⽂件夹下去到⽂件配置)如下图:
图中我的插件版本是3.1.3是最新的版本,当然你可以根据⾃⼰的需要配置。(配置好后As会⾃动去下载)
2 Gradle配置
Grale配置的意义在于:在项⽬创建或者编译的时候如何查Gradle的位置和使⽤什么版本的Gradle。
配置步骤:
1.在gradle-wrapper-propertiies中配置Gradle的版本
2.在本机缓存⽬录(⽤户主⽬录)中存在gradle-4.4-all⽂件夹或者在As的安装⽬录中存在。(两个⽬录下都不⼀定存在)
解释⼀下“本机缓存⽬录”和“As的安装⽬录
1.本机缓存⽬录(⽤户主⽬录下),例如我的是:C:\adle\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:\adle\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版本对应关系

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。