Android Gradle 外掛程式 3.1.0 版 (2018 年 3 月)
這個版本的 Android 外掛程式須使用下列項目:
最低版本 | 預設版本 | 附註 | |
---|---|---|---|
Gradle | 4.4 | 4.4 | 詳情請參閱「更新 Gradle」一節。 |
SDK 版本工具 | 27.0.3 | 27.0.3 | 安裝或設定 SDK 版本工具。請注意,您不必再使用 android.buildToolsVersion 屬性為建構工具指定版本,外掛程式預設會使用最低需求版本。 |
全新 DEX 編譯器 D8
Android Studio 現在預設會使用名為 D8 的全新 DEX 編譯器。DEX 編譯是指將 .class
位元碼轉換為 .dex
位元碼,以供 Android 執行階段 (或舊版 Android 的 Dalvik) 使用的程序。與先前名為 DX 的編譯器相較,D8 的編譯速度更快,且輸出的 DEX 檔案更小,同時還能提供相同等級或更優異的應用程式執行階段效能。
D8 應該不會改變您日常的應用程式開發工作流程。不過,如果發生任何和新編譯器有關的問題,請回報錯誤。如要暫時停用 D8 並使用 DX,可以在專案的 gradle.properties
檔案中加入以下內容:
android.enableD8=false
如果專案使用 Java 8 語言功能,系統預設會啟用漸進式脫糖功能。如要停用此功能,可以在專案的 gradle.properties
檔案內指定以下內容:
android.enableIncrementalDesugaring=false.
預先發布版使用者:請注意,如果您已在使用 D8 的預先發布版,D8 現在會使用 SDK 建構工具 (而非 JDK) 內的程式庫進行編譯。因此,假如您要存取的 API 位於 JDK 內,但不在 SDK 建構工具程式庫內,便會發生編譯錯誤。
行為變更
-
如要建構多個 APK,且每個 API 分別指定不同的 ABI,則在預設情況下,外掛程式不會再為下列 ABI 產生 APK:
mips
、mips64
和armeabi
。如要建構指定這些 ABI 的 APK,您必須使用 NDK r16b 以下版本,並在
build.gradle
檔案中指定 ABI,如下所示:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
現在 Android 外掛程式的建構快取會收回超過 30 天前的快取項目了。
-
將
"auto"
傳送到resConfig
不再自動選擇封裝 APK 所用的字串資源。如果繼續使用"auto"
,外掛程式會封裝應用程式和依附元件所提供的所有字串資源。因此,您應該改為逐一指定要讓外掛程式封裝至 APK 的語言代碼。 -
由於本機模組無法依附應用程式的測試 APK,因此透過
androidTestApi
設定 (而不是androidTestImplementation
) 為檢測設備測試新增依附元件,會導致 Gradle 發出以下警告:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
修正項目
- 修正問題:Android Studio 無法正確識別複合式建構中的依附元件。
- 修正問題:在單一建構作業中多次載入 Android 外掛程式會發生專案同步處理錯誤,例如在處理多個子專案的情況下,每個子專案的建構指令碼類別路徑內都包含該 Android 外掛程式,就會發生錯誤。