Trình bổ trợ Android cho Gradle 9.2 là một bản phát hành nhỏ bao gồm nhiều tính năng và điểm cải thiện mới.
Khả năng tương thích
Cấp độ API tối đa mà trình bổ trợ Android cho Gradle 9.2 hỗ trợ là cấp độ API 36.1. Sau đây là thông tin khác về khả năng tương thích:
| Phiên bản tối thiểu | Phiên bản mặc định | Lưu ý | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | Để tìm hiểu thêm, hãy xem phần cập nhật Gradle. |
| Công cụ tạo SDK | 36.0.0 | 36.0.0 | Cài đặt hoặc định cấu hình Công cụ tạo SDK. |
| NDK | Không áp dụng | 28.2.13676358 | Cài đặt hoặc định cấu hình phiên bản khác của NDK. |
| JDK | 17 | 17 | Để tìm hiểu thêm, hãy xem phần cài đặt phiên bản JDK. |
Báo cáo hợp nhất về mức độ phù hợp và kiểm thử
AGP 9.2.0-alpha07 giới thiệu các tác vụ tạo trang tổng quan HTML để hợp nhất kết quả kiểm thử và mức độ phù hợp của nhiều loại kiểm thử (đơn vị và đo lường), mô-đun và biến thể bản dựng, cung cấp thông tin tổng quan toàn diện trong một trang tổng quan duy nhất. Để biết thêm thông tin, hãy xem phần Tạo báo cáo mức độ sử dụng mã hợp nhất và Xem báo cáo kiểm thử hợp nhất.
Các thay đổi về R8
AGP 9.2.0 có các thay đổi sau đây về R8.
Ngữ nghĩa -keepattributes nghiêm ngặt hơn để giữ lại chú giải ẩn trong thời gian chạy
Không thể đọc chú thích ẩn trong thời gian chạy. Do đó, D8 sẽ loại bỏ vô điều kiện các chú thích không hiển thị trong thời gian chạy mà không có lựa chọn thay đổi điều này.
Để tương thích với ProGuard, R8 hỗ trợ xuất chú thích không hiển thị trong thời gian chạy. Nhưng khi biên dịch sang DEX, các chú thích không hiển thị trong thời gian chạy thường không bao giờ được giữ lại. Tuy nhiên, thông thường, bạn nên thêm quy tắc thuận tiện -keepattributes *Annotation* (trực tiếp hoặc gián tiếp từ các quy tắc giữ lại của người dùng) để R8 giữ lại các chú thích có thể nhìn thấy trong thời gian chạy.
Rất tiếc, điều này cũng dẫn đến việc giữ lại các chú thích không hiển thị trong thời gian chạy.
Để giảm thiểu vấn đề này và phù hợp hơn với hành vi của D8, các mẫu -keepattributes có ký tự đại diện sẽ không còn khớp với RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations và RuntimeInvisibleTypeAnnotations nữa.
Do đó, các chú thích không hiển thị trong thời gian chạy sẽ chỉ được giữ lại nếu tên thuộc tính được đề cập một cách rõ ràng mà không có ký tự đại diện.
Hiện tại, không có quy tắc nào sau đây giữ lại các chú thích không hiển thị trong thời gian chạy:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
Để giữ chú thích không hiển thị trong thời gian chạy, hãy sử dụng quy tắc sau:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
Hỗ trợ tên phủ định trong quy tắc thành viên
Ngôn ngữ cấu hình đã được mở rộng để giờ đây, bạn có thể so khớp các mẫu tên thành viên bị phủ định.
Ví dụ: để so khớp tất cả các phương thức không kết thúc bằng "ForTesting", hãy sử dụng quy tắc sau:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
Bạn cũng có thể phủ định các mẫu tên thành viên trong điều kiện tiên quyết của các quy tắc -if. Nếu mẫu tên thành viên bị phủ định chứa ký tự đại diện, thì các ký tự đại diện đó không thể được tham chiếu ngược trong quy tắc -if tiếp theo.
Vấn đề đã khắc phục
Trình bổ trợ Android cho Gradle 9.2.0-alpha04
| Vấn đề đã khắc phục | |||
|---|---|---|---|
| Trình bổ trợ Android cho Gradle |
|
||
Trình bổ trợ Android cho Gradle 9.2.0-alpha03
| Vấn đề đã khắc phục | |||
|---|---|---|---|
| Trình bổ trợ Android cho Gradle |
|
||
| Tìm lỗi mã nguồn |
|
||
| Tích hợp công cụ tìm lỗi mã nguồn |
|
||
Trình bổ trợ Android cho Gradle 9.2.0-alpha02
| Vấn đề đã khắc phục | ||||
|---|---|---|---|---|
| Trình bổ trợ Android cho Gradle |
|
|||
| Tích hợp công cụ tìm lỗi mã nguồn |
|
|||
Trình bổ trợ Android cho Gradle 9.2.0-alpha01
| Vấn đề đã khắc phục | |||||
|---|---|---|---|---|---|
| Trình bổ trợ Android cho Gradle |
|
||||
| Tìm lỗi mã nguồn |
|
||||