Android Gradle 外掛程式 8.7 版本資訊

JCenter 存放區已於 2021 年 3 月 31 日設為唯讀狀態。詳情 請 參閱 JCenter 服務更新內容

Android Studio 建構系統以 Gradle 為基礎,Android Gradle 外掛程式則加入了建構 Android 應用程式專用的功能。雖然 Android Gradle 外掛程式 (AGP) 通常會緊接著 Android Studio 來更新,但外掛程式 (還有 Gradle 系統的其他內容) 可以與 Android Studio 分開執行和更新。

本頁面將說明如何讓 Gradle 工具保持最新狀態,並介紹近期更新項目。如要查看過往 Android Gradle 外掛程式版本的版本資訊,請參閱過往的版本資訊

如要查看這個版本的 Android Gradle 外掛程式已修正的問題,請參閱已關閉的問題

如要針對 Android Gradle 外掛程式即將推出的破壞性變更查看相關的概略摘要,請參閱 Android Gradle 外掛程式發展藍圖

若想進一步瞭解如何使用 Gradle 設定 Android 版本,可參閱下列頁面的說明:

如要進一步瞭解 Gradle 建構系統,請參閱 Gradle 使用手冊

更新 Android Gradle 外掛程式

更新 Android Studio 時,系統可能會要求自動將 Android Gradle 外掛程式 更新為可供使用的最新版本。您可以選擇接受更新,也可根據專案的版本需求手動指定版本。

如要指定外掛程式版本,請在 Android Studio 中依序前往「File」>「Project Structure」>「Project」選單,或者在頂層 build.gradle.kts 檔案內操作。這個外掛程式版本會套用到該 Android Studio 專案內建構的所有模組。以下範例會透過 build.gradle.kts 檔案將外掛程式設為 8.7.0 版:

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

注意:請勿在版本編號中使用動態依附元件,例如 'com.android.tools.build:gradle:8.7.+'。使用這項功能可能會導致非預期的版本更新情形,使版本差異難以解析。

如果您尚未下載指定的外掛程式版本,當您下次建構專案,或在 Android Studio 選單列中依序點選「File」>「Sync Project with Gradle Files」時,Gradle 就會下載該版本。

更新 Gradle

更新 Android Studio 時,系統可能會要求同時將 Gradle 更新 為可供使用的最新版本。您可以選擇接受更新,也可根據專案的版本需求手動指定版本。

下表列出各個 Android Gradle 外掛程式版本所需的 Gradle 版本。為獲得最佳效能,請務必使用最新版本的 Gradle 及外掛程式。

外掛程式版本Gradle 最低版本需求
8.78.9
8.68.7
8.58.7
8.48.6
8.38.4
8.28.2
8.18.0
8.08.0
7.47.5

較舊版本

外掛程式版本所需 Gradle 版本
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0+6.7.1
4.1.0+6.5+
4.0.0+6.1.1+
3.6.0 - 3.6.45.6.4+
3.5.0 - 3.5.45.4.1+
3.4.0 - 3.4.35.1.1+
3.3.0 - 3.3.34.10.1+
3.2.0 - 3.2.14.6+
3.1.0+4.4+
3.0.0+4.1+
2.3.0+3.3+
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

如要指定 Gradle 版本,請在 Android Studio 中依序前往「File」>「Project Structure」>「Project」選單,或者使用使用指令列來更新 Gradle 版本。 建議您使用 Gradle 包裝函式指令列工具,此工具會更新 gradlew 指令碼。以下範例會使用 Gradle 包裝函式將 Gradle 版本設為 8.7。請注意,您必須執行這個指令「兩次」,才能升級 Gradle 和 Gradle 包裝函式 (詳情請參閱「升級 Gradle 包裝函式」一文)。

gradle wrapper --gradle-version 8.7

不過,這個方法在某些情況下可能會失敗,例如您剛更新了 AGP,而更新後的版本不再符合目前 Gradle 版本的要求。在這種情況下,您必須編輯 gradle/wrapper/gradle-wrapper.properties 檔案中的 Gradle 發布參考資料。以下範例會透過 gradle-wrapper.properties 檔案將 Gradle 版本設為 8.7。

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-bin.zip
...

Android Gradle 外掛程式與 Android Studio 相容性

Android Studio 建構系統以 Gradle 為基礎,Android Gradle 外掛程式 (AGP) 則加入了建構 Android 應用程式專用的功能。下表列出各個 Android Studio 版本所需的 AGP 版本。

Android Studio 版本 所需的 AGP 版本
Ladybug | 2024.2.1 3.2-8.7
Koala 功能推送 | 2024.1.2 3.2-8.6
Koala | 2024.1.1 3.2-8.5
Jellyfish | 2023.3.1 3.2-8.4
Iguana | 2023.2.1 3.2-8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2-8.0

較舊版本

Android Studio 版本 所需的 AGP 版本
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

如要瞭解 Android Gradle 外掛程式的新功能,請參閱 Android Gradle 外掛程式版本資訊

支援 Android API 級別的最低工具版本

Android Studio 和 AGP 有支援特定 API 級別的最低版本。如果您使用的 Android Studio 或 AGP 版本低於專案的 targetSdkcompileSdk 所需版本,可能會導致非預期的問題。建議您使用最新的 Android Studio 和 AGP 預先發布版,處理針對 Android 作業系統預先發布版的專案。您可以一併安裝 Android Studio 的預先發布版和穩定版

Android Studio 和 AGP 的最低版本如下:

API 級別 Android Studio 最低版本 AGP 最低版本
蜜糖果仁千層酥預覽 Meerkat | 2024.3.1 8.9.0
35 Koala 功能推送 | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

版本編號方式變更 (2020 年 11 月)

我們正在變更 Android Gradle 外掛程式 (AGP) 的版本編號方式,讓版本號碼與基礎 Gradle 建構工具更為一致。

重要變更項目如下:

  • AGP 現在使用語意化版本編號, 主要更新將以破壞性變更為主。

  • 每年都會發布一次 AGP 的主要版本, 以便配合 Gradle 的主要版本。

  • AGP 4.2 之後發布的內容將為 7.0 版本, 並必須更新為 Gradle 7.x 版本。每次 AGP 主要版本都必須升級 基礎 Gradle 工具的主要版本。

  • 我們會在約一年前提早淘汰 API, 並會同時提供替代功能。已淘汰的 API 將在約一年後透過後續重大更新移除。

相容性

Android Gradle 外掛程式 8.6 支援的最高 API 級別為 API 級別 34。以下提供其他相容性資訊:

最低版本 預設版本 附註
「Gradle」 8.9 8.9 「詳情請參閱『更新 Gradle』一節。」
SDK 版本工具 34.0.0 34.0.0 安裝設定 SDK 版本工具。
NDK 27.0.12077973 安裝設定 NDK 其他版本。」
JDK 17 17 「詳情請參閱『設定 JDK 版本』相關說明。」

Lint 行為變更

自 Android Gradle 外掛程式 8.7.0-alpha08 起,如果使用 Gradle 執行 lint 時出現 LintError,lint 分析工作就會擲回例外狀況。這項異動可避免罕見錯誤快取到建構快取中。

很遺憾,如果 lint 基準檔案中含有真正的 LintError 例項,這項變更會導致專案的建構作業中斷。錯誤訊息會包含哪些 Lint 檢查導致問題的相關資訊。在某些情況下,更新對應的程式庫依附元件或許能解決問題。如果沒有,您可以停用有問題的 Lint 檢查,直到程式庫作者修正為止。

已修正問題

Android Gradle 外掛程式 8.7.0 版

已修正問題
Android Gradle 外掛程式
AGP 應宣稱支援即將發布的 API 35
AGP 8.5:執行更多「mergeDebugResources」工作,導致建構作業速度變慢
將 ndk 27 設為 AGP 中的預設 NDK。
AGP 應宣稱支援即將發布的 API 35
AGP 應宣稱支援即將發布的 API 35
執行 Android lint 失敗,並顯示 NoSuchFileException
BuildType#initWith 會複製後置處理區塊,但不會套用 ProGuard 設定
無法合併前景服務類型標記
執行 Android lint 失敗,並顯示 NoSuchFileException
Lint
Lint 應檢查是否有用作 ViewGroup 的無效物件
主機為空值的 URI 出現「android:host is missing」錯誤
KtAnalysisSessionProvider 與 8.7.0-alpha04 中引入的 Lint 檢查項目不相容
使用 PackageManager.ResolveInfoFlags.of 與 Kotlin 時,出現「False positive」WrongConstant

Android Gradle 外掛程式 8.7.1 版

已修正問題
Android Gradle 外掛程式
agp 文件中有很多待定事項
Lint
AGP 8.6.1:迴歸 - 在 Kotlin 的 @LongDef 中使用 [Int].toLong() 時,Lint 會回報 WrongConstant 錯誤
設定 http 或 https 意圖篩選器配置時,出現「At least one host must be specified」的 Lint 錯誤

Android Gradle 外掛程式 8.7.2

已修正問題
Lint
AGP 8.7.0 - Lint 在 NavOptionsBuilder.popUpTo 上出現 RestrictedApi 偽陽性
縮減器 (R8)
[R8 8.6.27] 方法實作項目已替換為 `throw null`
預設 Android ProGuard 檔案在與目前的 R8 版本搭配使用時會擲回警告
如果訊息過大,MissingStartupProfileItemsDiagnostic 會因記憶體不足而導致 Gradle 用戶端異常終止

Android Gradle 外掛程式 8.7.3 版

已修正問題
Lint
執行 Lint 時,許多缺少分析 API 方法的警告
Lint 檢查出現偽陽性,android.permission.SCHEDULE_EXACT_ALARM 權限僅授予系統應用程式