一、主要概念
1憋槐、Gradle是什么双藕?
Gradle其實(shí)就是一個(gè)構(gòu)建項(xiàng)目的工具,即把一堆堆的目錄阳仔、文件按照一定的規(guī)則關(guān)聯(lián)起來(lái)蔓彩,形成一個(gè)項(xiàng)目的自動(dòng)化構(gòu)建工具。
Gradle版本,如gradle-4.10.1-all.zip
位置:項(xiàng)目主目錄 gradle 文件夾->wrapper->gradle-wrapper.properties
#Wed Apr 18 10:44:08 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
2驳概、Gradle插件又是什么赤嚼?
Gradle插件是針對(duì)Gradle發(fā)行版和Android SDK Build Tools封裝的一個(gè)工具,主要有兩大功能:
- 調(diào)用Gradle本身的代碼和批處理工具來(lái)構(gòu)建項(xiàng)目
- 調(diào)用Android SDK的編譯顺又、打包功能
Gradle插件版本
項(xiàng)目主目錄下的 build.gradle 中更卒,如“com.android.tools.build:gradle:3.3.0”
Gradle插件會(huì)有版本號(hào)(3.3.0),每個(gè)版本號(hào)又對(duì)應(yīng)有一個(gè)或一些 Gradle發(fā)行版本(一般是限定一個(gè)最低版本,如gradle-4.1-all.zip)
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
// classpath 'com.android.tools.build:gradle:2.3.3'
classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.6"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
}
3稚照、 Android SDK Build Tools Version:Android SDK 構(gòu)建工具版本
buildToolsVersion 位置:app 目錄->buid.gradle 文件
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId "com.sogou.teemo.translate.launcher"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.minSdkVersion
versionCode 48
versionName "1.4.8.${releaseTime()}"
// jackOptions {
// enabled false
// }
multiDexEnabled true //使能multDex
ndk {
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
}
}
二蹂空、依賴(lài)關(guān)系
明確概念:
Gradle Plugin Version: Gradle 插件版本
Gradle Version: Gradle發(fā)行版本
Android SDK Build Tools Version:Android SDK 構(gòu)建工具版本
三者依賴(lài)關(guān)系
- Gradle Plugin 有不同的版本號(hào)。 即我們常見(jiàn)的:classpath 'com.android.tools.build:gradle:3.0.1'】果录,
每個(gè)插件版本號(hào)又對(duì)應(yīng)一個(gè)或一些 Gradle 發(fā)行版本【即我們常見(jiàn)的:gradle-4.1-all.zip】
如果這兩個(gè)版本對(duì)應(yīng)不上了上枕,那么構(gòu)建項(xiàng)目的時(shí)候就會(huì)報(bào)錯(cuò)。
- Gradle Plugin 還和 Android SDK BuildTool 有關(guān)聯(lián),因?yàn)樗€負(fù)責(zé)和編譯相關(guān)的功能弱恒,這也是為何我們要在 build.gradle 里注明 buildToolsVersion 的原因辨萍。
三者對(duì)應(yīng)關(guān)系如下表:
plugin version | Required Gradle version | Required Gradle version |
---|---|---|
1.0.0 - 1.1.3 | 2.2.1 - 2.3 | |
1.2.0 - 1.3.1 | 2.2.1 - 2.9 | |
1.5.0 | 2.2.1 - 2.13 | |
2.0.0 - 2.1.2 | 2.10 - 2.13 | 21.1.1+ |
2.1.3 - 2.2.3 | 2.14.1+ | 23.0.2+ |
2.3.0+ | 3.3+ | 25.0.0+ |
2.3.0+ | 3.3+ | |
3.0.0+ | 4.1+ | 26.0.2+ 不再需要為構(gòu)建工具指定版本 - 插件默認(rèn)使用最低要求的版本》档可以刪除該android.buildToolsVersion屬性 |
3.1.0+ | 4.4+ | 27.0.3+ 不再需要為構(gòu)建工具指定版本 - 插件默認(rèn)使用最低要求的版本锈玉。可以刪除該android.buildToolsVersion屬性 |
3.2.0 - 3.2.1 | 4.6+ | |
3.3.0 - 3.3.2 | 4.10.1+ | |
3.4.0+ | 5.1.1+ |
參考鏈接:
https://blog.csdn.net/gongxiaoou/article/details/81082387
http://www.blogdaren.com/post-2418.html
https://developer.android.google.cn/studio/releases/gradle-plugin