接入過程中,很多人遇到gradle的各種錯誤,由于對各種gradle版本的概念不甚了了,模模糊糊一頓操作猛如虎,糊弄的能編譯通過就萬事大吉,下次再遇到又是一臉懵逼。所以我們還是一起先厘清gradle的版本概念。
1 明晰概念
1.1 Gradle是什么
Gradle是一個開源的項目自動化構建工具。它基于特定的語言來聲明項目設置,拋棄了基于XML的各種繁瑣配置。
1.2 Gradle Plugin(Gradle插件)
全稱應該叫Android Plugin for Gradle。其實就是為了使用Gradle構建Android應用,所封裝的一個工具。是針對Gradle發行版和Android SDK Build Tools封裝的一個工具。 主要有兩大功能:
調用Gradle本身的代碼和批處理工具來構建項目
調用Android SDK的編譯、打包功能
1.3 Android SDK Build Tools(Android SDK 構建工具)
是構建Android 應用所需 Android SDK 的一個編譯工具組件,安裝在 /build-tools/ 目錄中。
2 查看版本的方法
2.1 Gradle發行版本
常見的如:gradle-5.6.4-all.zip
在Android Studio項目中,查看文件gradle-wrapper.properties
文件路徑:project的gradle 文件夾->wrapper->gradle-wrapper.properties
#Sat Oct 10 16:41:39 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
如上所示,項目所使用的Gradle的發行版本就是6.1.1
2.2 Gradle Plugin
方法1:在Android Studio中查看Project Structure屬性面板,第一行是Gradle Plugin的版本,第二行是Gradle發行版本。
方法2:在在Android Studio項目中的 build.gradle 中,也可以看到對Gradle Plugin的版本依賴:
buildscript {repositories {google()jcenter()}dependencies {classpath 'com.android.tools.build:gradle:4.0.2'}
}
2.3 Android SDK Build Tools
在在Android Studio項目中,主Module的build.gradle文件中檢索buildToolsVersion進行查看:
android {buildToolsVersion "29.0.3"...
}
3 gradle plugin、gradle plugin 和buildTools之間的關系
3.1 一句話概括
Gradle Plugin對Gradle發行版進行了封裝,BuildTools使用Gradle Plugin輔助進行構建Android應用的工作。
3.2 三者的匹配關系
Gradle Plugin的每個版本號匹配一個或多個 Gradle發行版本號(一般是限定一個最低版本號)。如果這兩個版本號匹配不正確,那么構建項目的時候就會報錯。
如下表列出了各Android Gradle插件版本所需的Gradle版本。
最新的對應的關系請查看官網鏈接:https://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-plugin
Gradle Plugin 還和 Android SDK BuildTools 有依賴,一般來說安裝較新版本的SDK BuildTools即可。 可以使用 Android SDK 管理器下載該組件的最新版本。 如果不想使用默認版本,可在Module的build.gradle文件中使用buildToolsVersion進行指定 。
android {buildToolsVersion "29.0.2"...}