Ghi chú phát hành về Công cụ xây dựng SDK

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.

Bộ công cụ xây dựng, Bản sửa đổi 34.0.0 RC3(Tháng 4 năm 2023)

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:

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:

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ên androidx.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ạy apksigner 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 (do jarsigner 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ọi apksigner, chứ không phải sau. Gọi zipalign trước khi apksigner 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.

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).