Android Gradle 外掛程式 3.2.0 (2018 年 9 月)

這個版本的 Android 外掛程式須使用下列項目:

3.2.1 版 (2018 年 10 月)

本次更新後,您不再需要指定 SDK 建構工具的版本了。Android Gradle 外掛程式現在預設會使用 28.0.3 版。

新功能

  • 對 Android App Bundle 提供建構支援:應用程式套件是全新的上傳格式,其中包含應用程式所有已編譯的程式碼和資源,但是需要較長的處理時間,才能產生及簽署 APK,發布到 Google Play 商店上。您不必再建構、簽署及管理多個 APK,而且還能縮小使用者下載的應用程式大小,並針對他們的裝置進行最佳化處理。詳情請參閱「關於 Android App Bundle」一文。

  • 支援在使用註解處理工具時提升漸進式建構速度:AnnotationProcessorOptions DSL 現在擴充了 CommandLineArgumentProvider 的功能,讓您或註解處理工具作者能夠使用漸進式建構屬性類型註解,為處理工具的引數加上註解。這些註解可以改善漸進式與快取清理建構作業的正確性和效能。詳情請參閱「將引數傳送至註解處理工具」一節。

  • AndroidX 適用的遷移工具:搭配 Android 3.2 以上版本使用 Android Gradle 外掛程式 3.2.0 版時,您可以從選單列中依序點選「Refactor」>「Migrate to AndroidX」,讓專案的本機依附元件和 Maven 依附元件改為使用新的 AndroidX 程式庫。使用這項遷移工具也會將 gradle.properties 檔案中以下標記設為 true

    • android.useAndroidX設為 true 時,Android 外掛程式會使用適當的 AndroidX 程式庫,而不是支援資料庫。如未指定此標記,則外掛程式預設會將其設為 false

    • android.enableJetifier設為 true 時,Android 外掛程式會自動重新編寫現有第三方程式庫的二進位檔,讓這些程式庫改用 AndroidX。如未指定此標記,則外掛程式預設會將其設為 false。您只能在 android.useAndroidX 也設為 true 的情況下將這個標記設為 true,否則就會發生建構錯誤。

      詳情請參閱「AndroidX 總覽」一文。

  • 全新的 R8 程式碼縮減器:R8 是取代 ProGuard 的新工具,用於將程式碼的縮減與模糊處理。如要開始使用 R8 預先發布版,請在專案的 gradle.properties 檔案中加入以下內容:

            android.enableR8 = true
            
            android.enableR8 = true
            

行為變更

  • 目前已預設啟用 D8 脫糖。

  • Google 的 Maven 存放區現已開始提供 AAPT2。如要使用 AAPT2,請確認 build.gradle 檔案中含有 google() 依附元件,如下所示:

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • 目前已預設啟用原生 multidex。將偵錯版本的應用程式部署至搭載 Android API 級別 21 以上的裝置時,舊版的 Android Studio 會啟用原生 multidex。現在,無論您要部署至裝置,還是要建構發布用的 APK,Android Gradle 外掛程式都會為設定 minSdkVersion=21 以上版本的所有模組啟用原生 multidex。

  • 外掛程式現在會強制執行最低版本需求:protobuf 外掛程式 (0.8.6)、Kotlin 外掛程式 (1.2.50) 以及 Crashlytics 外掛程式 (1.25.4)。

  • 現在指定模組名稱時,功能模組外掛程式 com.android.feature 會強制只能使用字母、數字和底線。例如,如果功能模組名稱含有半形破折號,就會發生建構錯誤。此行為與動態功能外掛程式的行為相符。

修正錯誤

  • JavaCompile 現在可以在設有資料繫結的專案中進行快取了。(問題 #69243050)
  • 針對設有資料繫結的程式庫模組改善避免編譯功能。(問題 #77539932)
  • 如果您在先前版本中曾經因為某些無法預期的建構錯誤而停用隨選設定,現在您可以重新啟用這項功能。(問題 #77910727)