Trình bổ trợ Android cho Gradle 9.3 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.3 hỗ trợ là cấp độ API 37.
Sau đây là thông tin khác về khả năng tương thích:
Tác vụ Gradle Trình phân tích cấu hình R8 độc lập
Trình bổ trợ Android cho Gradle 9.3 giới thiệu một tác vụ Gradle chuyên dụng để chạy Trình phân tích cấu hình R8 riêng biệt. Trình phân tích cấu hình R8 giúp bạn tối ưu hoá các quy tắc rút gọn mã và làm rối mã nguồn của ứng dụng.
./gradlew :app:analyzeReleaseR8Config
Tác vụ :app:analyzeReleaseR8Config tạo báo cáo mà không hoàn tất quy trình biên dịch APK hoặc Gói. Điều này giúp rút ngắn vòng hồi tiếp, từ đó tăng tốc độ lặp lại của nhà phát triển khi tinh chỉnh các quy tắc lưu giữ. Ngoài ra, bạn có thể tự động tạo báo cáo bằng cách chạy bản phát hành R8 (chẳng hạn như assembleRelease hoặc bundleRelease).
Để biết thêm thông tin, hãy xem phần Chạy tác vụ Gradle độc lập để tạo báo cáo.
Vấn đề đã khắc phục
Trình bổ trợ Android cho Gradle 9.3.3
| Vấn đề đã khắc phục |
| Trình bổ trợ Android cho Gradle |
|
DSL tối ưu hoá mới { enable = true } của AGP 9.3.0 không đặt isMinifyEnabled trong đối tượng ApplicationVariant
|
|
| Dexer (D8) |
|
D8 9.2.14 chậm hơn khoảng 38% so với 8.13.6 trong `mergeProjectDexDebug` trên cùng một đầu vào/đầu ra
|
|
| Trình rút gọn (R8) |
|
Chế độ gỡ lỗi D8: ArrayIndexOutOfBoundsException: Chỉ mục -1 nằm ngoài ranh giới cho độ dài 31 – hồi quy giữa R8 8.8.34 và 8.9.27
|
|
VerifyError: Outliner mở rộng không chính xác vùng try-catch, gây ra thanh ghi chưa được khởi tạo
|
|
R8 ghi tệp `.kotlin_module` có dấu ":" trong tên, tạo ra một tên tệp không hợp lệ trên Windows
|
|
Thuyết không đơn định của bản dựng R8: thông tin đầu vào giống hệt nhau tạo ra dex/ánh xạ khác nhau (sự hồi quy từ "Giữ lại các lệnh Assume trong LIR")
|
|
Liên kết trùng lặp với R8 9.1
|
|
AGP thỉnh thoảng tạo ra các tệp dex không xác minh được và khiến ứng dụng gặp sự cố khi khởi chạy
|
|
NullPointerException: Không thể gọi Position.getOutermostCaller() vì entryPosition có giá trị rỗng
|
|
Mức tiêu thụ bộ nhớ cao cho mỗi quy tắc
|
|
R8: VerifyError trên Android 4.4
|
|
Trình bổ trợ Android cho Gradle 9.3.2
| Vấn đề đã khắc phục |
| Tìm lỗi mã nguồn |
|
Tìm lỗi mã nguồn AGP 9.3 gặp sự cố trên JDK 17 – NoSuchMethodError: java.util.List.removeLast() trong intellij-core JavaDocParser đi kèm
|
|
Trình bổ trợ Android cho Gradle 9.3.1
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.1
|
Trình bổ trợ Android cho Gradle 9.3.0-rc02
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0-rc02
|
Trình bổ trợ Android cho Gradle 9.3.0-rc01
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0-rc01
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha12
| Vấn đề đã khắc phục |
| Trình bổ trợ Android cho Gradle |
|
Lỗi bản dựng: Rò rỉ mã nhận dạng tệp trên classes.jar trong compile_library_classes_jar ngăn việc tạo lại trên Windows cho đến khi khởi động lại IDE
|
|
| Tìm lỗi mã nguồn |
|
Lint coi thư viện Java đã nhập là dự án Android, bỏ qua phiên bản SDK biên dịch
|
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha11
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0-alpha11
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha10
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0-alpha10
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha09
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0-alpha09
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha08
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0-alpha08
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha07
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0-alpha07
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha06
| Vấn đề đã khắc phục |
| Trình bổ trợ Android cho Gradle |
|
JavaDocGenerationTask nên sử dụng các worker
|
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha05
| Vấn đề đã khắc phục |
| Trình rút gọn (R8) |
|
Ánh xạ làm rối mã nguồn L8 không có trong tệp ánh xạ app.txt
|
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha04
| Vấn đề đã khắc phục |
| Trình bổ trợ Android cho Gradle |
|
Nhóm tài nguyên KMP keepRules bị bỏ qua mà không có it.consumerKeepRules.publish = true
|
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha03
| Vấn đề đã khắc phục |
| Trình bổ trợ Android cho Gradle |
|
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" (Không tìm thấy lớp "com.android.tools.r8.RecordTag") sau khi nâng cấp gradle lên 9.2.0
|
|
| Tìm lỗi mã nguồn |
|
Lỗi Lint khi tính năng rút gọn tài nguyên bị tắt
|
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha02
| Vấn đề đã khắc phục |
| Trình bổ trợ Android cho Gradle |
|
Yêu cầu về tính năng: Thêm tính năng hỗ trợ native_libs_merge_blame_file vào Trình bổ trợ Android cho Gradle
|
|
| Tìm lỗi mã nguồn |
|
Thiếu dấu nháy ngược trong thông báo vấn đề AnnotationDetector
|
|
Lỗi Lint khi tính năng rút gọn tài nguyên bị tắt
|
|
Trình bổ trợ Android cho Gradle 9.3.0-alpha01
| Vấn đề đã khắc phục |
| Trình bổ trợ Android cho Gradle |
|
Vấn đề về mã phiên bản được tạo tự động
|
|
AGP: Di chuyển khỏi Dự án dưới dạng ký hiệu phần phụ thuộc
|
|
| Tìm lỗi mã nguồn |
|
Dương tính giả với công cụ lint có UseKtx
|
|
Trình bổ trợ Android cho Gradle 9.3.0
| Vấn đề đã khắc phục |
|
Không có vấn đề công khai nào được đánh dấu là đã khắc phục trong AGP 9.3.0
|
Cập nhật DSL tối ưu hoá để định cấu hình các quy tắc giữ lại R8
Giới thiệu DSL tối ưu hoá mới để định cấu hình các quy tắc giữ lại cho hoạt động tối ưu hoá R8, được hỗ trợ bởi các mô-đun ứng dụng và các kiểm thử mô-đun thư viện. Để định cấu hình hoạt động tối ưu hoá bằng DSL đã cập nhật, hãy sử dụng khối optimization mới. Đối với ứng dụng, hãy định cấu hình khối optimization trong một loại bản dựng (chẳng hạn như release hoặc debug) trong tập lệnh bản dựng cấp ứng dụng. DSL tối ưu hoá mới cập nhật giúp đơn giản hoá cấu hình R8:
- Khi bật tính năng tối ưu hoá, bạn có thể bật cả tính năng tối ưu hoá mã và tính năng rút gọn tài nguyên được tối ưu hoá.
- Bạn không cần chỉ định tệp quy tắc lưu giữ mặc định của Android nữa.
Xin lưu ý rằng DSL cũ vẫn được hỗ trợ.
Giới thiệu về bộ nguồn để xác định quy tắc giữ lại
Đặt các quy tắc giữ lại trong nhóm tài nguyên src/<variant>/keepRules/, với hậu tố tệp là .keep. Các tập hợp nguồn cho quy tắc giữ lại được hỗ trợ bởi DSL tối ưu hoá đã cập nhật và DSL cũ. Việc sử dụng nhóm tài nguyên cho các quy tắc giữ lại được hỗ trợ trong mô-đun ứng dụng, mô-đun thư viện và là một cách để xác định quy tắc của người dùng trong các mô-đun Kotlin Multiplatform (KMP).