gradle 插件版本、gradle版本 和buildToolsVersion之間的對應關系

一、主要概念

1、Gradle是什么?

Gradle其實就是一個構建項目的工具,即把一堆堆的目錄、文件按照一定的規則關聯起來,形成一個項目的自動化構建工具。

Gradle版本,如gradle-4.10.1-all.zip

位置:項目主目錄 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插件是針對Gradle發行版和Android SDK Build Tools封裝的一個工具,主要有兩大功能:

  1. 調用Gradle本身的代碼和批處理工具來構建項目
  2. 調用Android SDK的編譯、打包功能

Gradle插件版本

項目主目錄下的 build.gradle 中,如“com.android.tools.build:gradle:3.3.0”

Gradle插件會有版本號(3.3.0),每個版本號又對應有一個或一些 Gradle發行版本(一般是限定一個最低版本,如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 構建工具版本

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'
        }
    }
}

二、依賴關系

明確概念:

  • Gradle Plugin Version: Gradle 插件版本

  • Gradle Version: Gradle發行版本

  • Android SDK Build Tools Version:Android SDK 構建工具版本

三者依賴關系

  1. Gradle Plugin 有不同的版本號。 即我們常見的:classpath 'com.android.tools.build:gradle:3.0.1'】,
    每個插件版本號又對應一個或一些 Gradle 發行版本【即我們常見的:gradle-4.1-all.zip】

如果這兩個版本對應不上了,那么構建項目的時候就會報錯。

  1. Gradle Plugin 還和 Android SDK BuildTool 有關聯,因為它還負責和編譯相關的功能,這也是為何我們要在 build.gradle 里注明 buildToolsVersion 的原因。

三者對應關系如下表:

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+ 不再需要為構建工具指定版本 - 插件默認使用最低要求的版本。可以刪除該android.buildToolsVersion屬性
3.1.0+ 4.4+ 27.0.3+ 不再需要為構建工具指定版本 - 插件默認使用最低要求的版本。可以刪除該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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。