Công cụ xây dựng SDK Android là một thành phần của SDK Android cần thiết để
xây dựng ứng dụng Android. Công cụ này đã được cài đặt trong
thư mục <sdk>/build-tools/
.
Bạn phải luôn cập nhật thành phần Công cụ xây dựng bằng cách tải phiên bản mới nhất xuống
thông qua Trình quản lý SDK Android. Nếu bạn đang sử dụng
trình bổ trợ Android cho Gradle 3.0.0 trở lên,
thì dự án của bạn sẽ tự động dùng một phiên bản mặc định của các công cụ xây dựng mà trình bổ trợ chỉ định. Để
sử dụng một phiên bản khác của các công cụ xây dựng, hãy chỉ định phiên bản đó bằng cách sử dụng
buildToolsVersion
trong build.gradle
của mô-đun như sau:
android { buildToolsVersion "34.0.0" ... }
android { buildToolsVersion = "34.0.0" ... }
Bản sửa đổi
Các phần dưới đây cung cấp ghi chú về các bản phát hành của Công cụ xây dựng. Để xác định bản sửa đổi nào có sẵn trong Công cụ xây dựng trong SDK của bạn, hãy tham khảo danh sách Gói đã cài đặt trong Trình quản lý SDK Android.
Các bản sửa lỗi và điểm cải tiến chung.
Bản cập nhật này bao gồm tính năng hỗ trợ xây dựng ứng dụng với các Android 14 Preview API (API Xem trước của Android 14).
Bản cập nhật này khắc phục được vấn đề sau:
-
Phiên bản 33.0.0 của
core-lambda-stubs.jar
trên macOS khác với trên Linux/Windows. (Xem vấn đề #237299698.)
Bản cập nhật này khắc phục được vấn đề sau:
- AIDL không hoạt động với Công cụ tạo bản dựng 33.0.0. (Xem vấn đề #236167971)
Bản cập nhật này có phần hỗ trợ xây dựng với các Android 11 Preview API.
Bản cập nhật này khắc phục được vấn đề sau:
- Vấn đề xây dựng với Renderscript trên macOS Catalina. (Xem vấn đề #142590626)
Bản cập nhật này khắc phục được vấn đề sau:
Bản cập nhật này có hỗ trợ xây dựng với API cấp 29.
Bản cập nhật này hỗ trợ cho trình bổ trợ Android cho Gradle 3.2.0 và khắc phục các vấn đề sau:
-
Khắc phục lỗi thư viện JNI khiến ứng dụng gặp sự cố khi gọi
androidx.renderscript.RenderScript.create()
. -
Khắc phục lỗi gây ra lỗi xây dựng
Program type already present
với các tài nguyênandroidx.annotation
.
Bao gồm phiên bản mới nhất của D8.
Cải thiện khả năng hỗ trợ biên dịch lambda khi bạn bật các tính năng ngôn ngữ trong Java 8.
Cải thiện khả năng hỗ trợ đối với các tính năng ngôn ngữ trong Java 8.
Thêm tuỳ chọn hỗ trợ cho multidex cữ cho các APK thử nghiệm. (Vấn đề #37324038)
Ngoài các bản sửa lỗi chung, bản phát hành này còn bao gồm các mục cập nhật sau:
- Cập nhật
apksigner
lên phiên bản 0.8:- Khả năng tương thích với Java 9. (Vấn đề #37137869)
-
Thông số
--pass-encoding
mới để xử lý các kho khoá và khoá được mã hoá bằng mật khẩu không phải ASCII. Nếu bạn chuyển sang Java 9 vàapksigner
không thể giải mã kho khoá hoặc khoá của mình, hãy sử dụng tham số này để chỉ định mã hoá ký tự bạn dùng để tạo kho khoá hoặc khoá. Để biết thêm thông tin, hãy xem tài liệu vềapksigner
hoặc chạyapksigner sign --help
từ dòng lệnh. -
Thông báo lỗi sẽ hiệu quả hơn khi
apksigner
không thể xác minh chữ ký JAR do thuật toán chữ ký hoặc chuỗi đại diện không được hỗ trợ. (Vấn đề #63525618)
-
Hỗ trợ chế độ trình nền AAPT2 khi sử dụng
trình bổ trợ Android cho Gradle
3.0.0-beta7
trở lên.
Ngoài các bản sửa lỗi chung, bản phát hành này sẽ khôi phục apksigner
về gói công cụ xây dựng (gói này đã bị bỏ qua do nhầm lẫn trong phiên bản 26.0.0) và bao gồm
các mục cập nhật sau cho công cụ:
- Bổ sung hỗ trợ PKCS #11 để cho phép ký bằng các khoá được lưu giữ trong phần cứng bảo mật. (Vấn đề #37140484)
- Bổ sung hỗ trợ để tải thêm Nhà cung cấp JCA trước khi ký.
- Tuân theo
android:targetSandboxVersion
khi xác minh APK. - Khi ký, hãy từ chối APK bằng những tệp có chứa "CR" (trả lại vị trí đầu dòng), "LF" (nguồn cấp dữ liệu dòng) hoặc ký tự đặc biệt "NUL" (rỗng) trong tên tệp.
- Sửa
apksigner.bat
để xử lý chính xác những tham số có chứa dấu cách. (Vấn đề #38132450) - Khắc phục lỗi trong quá trình xác minh chữ ký JAR khi có nhiều chuỗi đại diện cho cùng một
mục trong
MANIFEST.MF
. (Vấn đề #38497270)
Bổ sung tính năng hỗ trợ cho việc tạo bản dựng bằng API cấp 26 và chứa các bản sửa lỗi chung.
Nội dung cập nhật đối với apksigner
:
- Thêm thông số
--in
để tạo tính đối xứng với thông số--out
hiện có. - Nếu bạn không chỉ định mật khẩu khoá bằng
--key-pass
, thìapksigner
sẽ sử dụng mật khẩu kho khoá làm mật khẩu khoá. Tuy nhiên, nếu khoá yêu cầu một mật khẩu khác, thì bạn sẽ được nhắc nhập mật khẩu khoá từ dòng lệnh. (Vấn đề #37134986) - Bổ sung khả năng tương thích với
jarsigner
cho các mật khẩu không phải ASCII. (Vấn đề #37135737)
Các bản sửa lỗi.
Bản phát hành này bao gồm các bản sửa lỗi và các điểm cải tiến
sau đây cho apksigner
:
- Hỗ trợ các APK có tên mục JAR bị làm rối mã nguồn.
- Nút chuyển
--print-certs
hiện cũng kết xuất vân tay số MD5.
Các bản sửa lỗi cho chuỗi công cụ Jack:
- Khắc phục vấn đề với Jack hỗ trợ các tệp nguồn không phải ASCII. (Vấn đề #218892)
- Khắc phục vấn đề gây ra lỗi
AssertionError
trong một số nội dung tổng hợp. (Vấn đề #208414)
- Thêm
apksigner
, một công cụ ký APK để thay thếjarsigner
. Theo mặc định,apksigner
ký các APK bằng giao thức ký JAR thông thường (dojarsigner
sử dụng) và Giao thức chữ ký APK v2 được giới thiệu trong Android 7.0 (API cấp 24). Mọi sửa đổi đối với một tệp APK đã ký bằng Giao thức ký APK v2 đều làm mất hiệu lực chữ ký của tệp APK đó. Do đó, quy trình hậu xử lý APK, chẳng hạn nhưzipalign
, phải được thực hiện trước khi gọiapksigner
, chứ không phải sau. Gọizipalign
trước khiapksigner
hoạt động tốt vìapksigner
giữ nguyên chế độ căn chỉnh và nén APK (không giống nhưjarsigner
).
- Khắc phục các vấn đề trong Thư viện hỗ trợ RenderScript trên các thiết bị Arm64.
- Khắc phục các vấn đề trong Thư viện hỗ trợ RenderScript trên một số thiết bị Jelly Bean.
- Hỗ trợ
renderscriptTargetAPI 21+
khi sử dụng Trình bổ trợ Android cho Gradle, Bản sửa đổi 2.1.0 trở lên.
- Cải thiện hiệu suất hợp nhất của công cụ
dx
. - Khắc phục các vấn đề trong trình biên dịch RenderScript dành cho Windows.
Khắc phục các vấn đề trong công cụ RenderScript.
Thêm tính năng hỗ trợ bản phát hành Android 6.0 (API cấp 23).
Khắc phục các vấn đề về khả năng tương thích với các nhân RenderScript trên thiết bị Android 4.4 (API cấp 19) đến Android 4.1 (API cấp 16).
Thêm tính năng hỗ trợ Android 5.1 (API cấp 22).
Khắc phục sự cố khi xây dựng bố cục dữ liệu ở chế độ 32 bit.
Khắc phục các vấn đề về tập lệnh multidex.
Thêm tính năng hỗ trợ tệp multidex cho APK và hỗ trợ Jack để giải quyết giới hạn tham chiếu của phương thức 64K.
Hoàn thành bản cập nhật cho Eclipse ADT để giải quyết các vấn đề không ổn định trên nền tảng Windows.
Các bản cập nhật ban đầu cho Eclipse ADT trên Windows. Vui lòng sử dụng Bản sửa đổi 21.0.2.
- Lưu ý chung:
-
- Thêm tính năng hỗ trợ Android 5.0 (API cấp 21).
- RenderScript hiện hỗ trợ hoạt động liền mạch 32/64 bit cho API cấp 21 trở lên.
- Khắc phục vấn đề với hệ thống xây dựng Gradle khi sử dụng trình bổ trợ JaCoCo. (Vấn đề 69174)
- Thêm tuỳ chọn danh sách nhập để sử dụng với các dòng lệnh dài trên Windows.
- Lưu ý chung:
-
- Thêm tính năng hỗ trợ cho Android Wear.
- Lưu ý chung:
-
- Thêm
zipalign
vào Công cụ tạo. - Sửa đổi
aapt
để bỏ qua các tệp XML không biên dịch được.
- Thêm
Khắc phục sự cố với tính năng hỗ trợ RenderScript.
- Các vấn đề về bản dựng RenderScript:
-
- Khắc phục vấn đề với phương thức mã hoá mã bit RenderScript. (Vấn đề 64775)
- Khắc phục vấn đề về việc RenderScript thiếu biểu tượng toán học (Vấn đề 64110)
- Khắc phục các vấn đề khác về bản dựng:
-
- Khắc phục tính năng hỗ trợ để biên dịch RenderScript ở chế độ NDK với Gradle.
- Khắc phục sự cố
BufferOverflowException
trong bản dựng dx. (Vấn đề 61710)
Thêm tính năng hỗ trợ các mục tiêu xây dựng Android 4.4 (API cấp 19).
Khắc phục một số vấn đề nhỏ về bản dựng.
Khắc phục vấn đề với chế độ hỗ trợ RenderScript.
Thêm tính năng hỗ trợ các mục tiêu xây dựng Android 4.3 (API cấp 18).
Phiên bản đầu tiên.
- Lưu ý chung:
-
- Hỗ trợ đi kèm cho các mục tiêu xây dựng Android 4.2 (API cấp 17).
- Phân tách các thành phần dành riêng cho bản dựng của SDK Android từ thành phần công cụ nền tảng, nhờ đó, bạn có thể cập nhật các công cụ bản dựng một cách độc lập với các thành phần môi trường phát triển tích hợp (IDE).