Android SDK Build-Tools 是建構 Android 應用程式所需的 Android SDK 元件。它安裝在 <sdk>/build-tools/
目錄中。
請您務必使用 Android SDK Manager 下載最新版本,保持更新建構工具元件。如果您使用 Gradle 3.0.0 或以上版本適用的 Android 外掛程式,專案會自動使用該外掛程式指定的預設建構工具版本。如要使用其他建構工具版本,請使用模組 build.gradle
中的 buildToolsVersion
進行指定,如下所示:
android { buildToolsVersion "34.0.0" ... }
android { buildToolsVersion = "34.0.0" ... }
修訂版本
下列各節提供與建構工具版本相關的注意事項。如要確定您的 SDK 提供哪些建構工具修訂版本,請參閱 Android SDK Manager 中的已安裝套件清單。
修正一般錯誤並改善功能。
這項更新包含使用 Android 14 預覽版 API 進行建構的支援功能。
這項更新修正了下列問題:
-
core-lambda-stubs.jar
33.0.0 版在 macOS 和 Linux/Windows 上的差異(詳情請參閱問題 #237299698)。
這項更新修正了下列問題:
- AIDL 不適用於建構工具 33.0.0。(請參閱問題 #236167971)
這項更新包含使用 Android 11 預覽版 API 進行建構的支援功能。
這項更新修正了下列問題:
- 在 macOS Catalina 上 Renderscript 的建構問題。(請參閱問題 #142590626)
這項更新修正了下列問題:
這項更新包含使用 API 級別 29 進行建構的支援功能。
這項更新包含對 Android Gradle 外掛程式 3.2.0 的支援,並修正了下列問題:
-
修正在呼叫
androidx.renderscript.RenderScript.create()
時造成應用程式當機的 JNI 程式庫錯誤。 -
修正原本導致
androidx.annotation
資源發生Program type already present
建構錯誤的錯誤。
包含最新版的 D8。
改進了當啟用 Java 8 語言功能時編譯 lambda 的支援功能。
改進了對 Java 8 語言功能的支援。
新增對測試 APK 舊版 multidex 的支援。(問題 #37324038)
除了一般錯誤修正以外,這個版本還包含下列更新:
- 將
apksigner
更新至 0.8 版:- 與 Java 9 的相容性。(問題 #37137869)
-
新增
--pass-encoding
參數來處理使用非 ASCII 密碼加密的 KeyStore 和金鑰。如果您切換至 Java 9,但apksigner
無法將 KeyStore 或金鑰解密,請使用這個參數來指定用於建立 KeyStore 或金鑰的半形字元編碼。詳情請參閱apksigner
說明文件,或是透過指令列執行apksigner sign --help
。 -
當
apksigner
因不支援的摘要或簽名演算法而無法驗證 JAR 簽名時,會顯示更明確的錯誤訊息 (問題 #63525618)。
-
當使用 Gradle 適用的 Android 外掛程式
3.0.0-beta7
以上版本時,支援 AAPT2 Daemon 模式。
除了一般錯誤修正外,這個版本還將 apksigner
還原至建構工具套件 (在 26.0.0 版中誤遭遺漏),並且包含該工具的下列更新:
- 新增 PKCS #11 支援,允許使用安全硬體中持有的金鑰進行簽署。(問題 #37140484)
- 新增在簽署前載入其他 JCA Provider 的支援功能。
- 驗證 APK 時可用
android:targetSandboxVersion
。 - 簽署時,拒絕檔案名稱中含有「CR」(回車字元)、「LF」(換行) 或「NUL」(空值) 特殊半形字元的 APK。
- 修正
apksigner.bat
,以正確處理包含空格的參數。(問題 #38132450) - 修正當
MANIFEST.MF
中的相同項目存在多個摘要時發生的 JAR 簽名驗證錯誤。(問題 #38497270)
新增使用 API 級別 26 進行建構的支援功能,並包含一般錯誤修正。
對 apksigner
的更新:
- 新增
--in
參數以與現有的--out
參數對稱。 - 如果不使用
--key-pass
指定金鑰密碼,apksigner
會使用 KeyStore 密碼做為金鑰密碼。不過,如果金鑰需要其他密碼,系統現在會提示您透過指令列輸入金鑰密碼 (問題 #37134986)。 - 為非 ASCII 密碼新增與
jarsigner
的相容性。(問題 #37135737)
錯誤修正。
該版本包含多項錯誤修正,以及對 apksigner
的改進:
- 支援 JAR 項目名稱經模糊化處理的 APK。
--print-certs
切換按鈕現在也會傾印 MD5 指紋。
修正 Jack 工具鍊的錯誤:
- 已修正 Jack 支援非 ASCII 來源檔案的問題。(問題 #218892)。
- 修正在部分編譯期間導致
AssertionError
的問題 (問題 #208414)。
- 新增
apksigner
,用來取代jarsigner
的 APK 簽署工具。根據預設,apksigner
會使用傳統的 JAR 簽署配置 (由jarsigner
使用) 和 Android 7.0 (API 級別 24) 中引入的 APK Signature Scheme v2 簽署 APK。對使用 APK Signature Scheme v2 簽署的 APK 做的任何修改都會使簽名失效。因此,必須在叫用apksigner
前執行 APK 後續處理,例如zipalign
。由於apksigner
會保留 APK 對齊及壓縮功能 (與jarsigner
不同),因此可以在apksigner
之前叫用zipalign
。
- 修正 arm64 裝置上 RenderScript 支援資料庫中的問題。
- 修正特定 Jelly Bean 裝置上 RenderScript 支援資料庫的問題。
- 使用 Gradle 適用的 Android 外掛程式 (2.1.0 及以上版本) 時支援
renderscriptTargetAPI 21+
。
- 提升
dx
工具的合併效能。 - 已修正 Windows 適用的 RenderScript 編譯器問題。
修正 RenderScript 工具中的問題。
新增對 Android 6.0 (API 級別 23) 版本的支援。
已修正 Android 4.4 (API 級別 19) 至 Android 4.1 (API 級別 16) 裝置上 RenderScript 核心的相容性問題。
新增對 Android 5.1 (API 級別 22) 的支援。
已修正無法在 32 位元模式下建立資料版面配置的問題。
已修正 multidex 指令碼問題。
新增 APK multidex 檔案支援,以及 Jack 支援,以解決 64K 方法參考限制的問題。
完成 Eclipse ADT 更新以解決 Windows 平台上的不穩定問題。
Windows 上的 Eclipse ADT 初始更新。請使用修訂版本 21.0.2。
- 一般注意事項:
-
- 新增對 Android 5.0 (API 級別 21) 的支援。
- RenderScript 現已支援 API 級別 21 以上版本的 32/64 位元無縫作業。
- 修正使用 JaCoCo 外掛程式時 Gradle 建構系統的問題。(問題 69174)。
- 新增「input-list」選項,以便與 Windows 中偏長的指令列搭配使用。
- 一般注意事項:
-
- 新增對 Android Wear 的支援。
- 一般注意事項:
-
- 新增
zipalign
至建構工具。 - 修改
aapt
,以忽略無法編譯的 XML 檔案。
- 新增
修正 RenderScript 支援的問題。
- 修正其他版本問題:
-
- 修正透過 Gradle 以 NDK 模式編譯 RenderScript 的支援功能。
- 修正 dx 版本中的
BufferOverflowException
問題 (問題 61710)。
新增對 Android 4.4 (API 級別 19) 建構目標的支援。
修正幾個小的版本問題。
修正 RenderScript 支援模式的問題。
新增對 Android 4.3 (API 級別 18) 建構目標的支援。
初始版本。
- 一般注意事項:
-
- 納入對 Android 4.2 (API 級別 17) 建構目標的支援。
- 將 Android SDK 的建構專用的元件與平台工具元件分離,以便獨立於整合的開發環境 (IDE) 元件來更新建構工具。