Trình bổ trợ Android cho Gradle 8.4.0 (Tháng 4 năm 2024)

Trình bổ trợ Android cho Gradle 8.4.0 là một bản phát hành chính bao gồm nhiều tính năng và cải tiến mới.

Khả năng tương thích

Cấp độ API tối đa mà trình bổ trợ Android cho Gradle 8.4 hỗ trợ là API cấp 34. Dưới đâ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 8.6 8.6 Để tìm hiểu thêm, hãy xem phần cập nhật Gradle.
Công cụ tạo SDK 34.0.0 34.0.0 Cài đặt hoặc định cấu hình Công cụ tạo SDK.
NDK Không áp dụng 26.1.10909125 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.

Sau đây là các tính năng mới trong trình bổ trợ Android cho Gradle 8.4.

Phát hành bản vá

Dưới đây là danh sách các bản vá đã phát hành trong Android Studio Jellyfish và trình bổ trợ Android cho Gradle 8.4.

Android Studio Jellyfish | 2023.3.1 Bản vá 2 và AGP 8.4.2 (tháng 6 năm 2024)

Bản cập nhật bảo mật quan trọng: Một lỗ hổng bảo mật trong trình bổ trợ GitHub có trong Android Studio Iguana | 2023.2.1 trở lên có thể tiết lộ mã truy cập cho các bên không được phép.

Bản sửa lỗi: Jetbrains đã giải quyết vấn đề này trong các sản phẩm nền tảng IntelliJ, và bản sửa lỗi hiện có trong Android Studio Jellyfish | 2023.3.1 Bản vá 2 (2023.3.1.20).

Nếu đã có bản dựng Android Studio trên kênh ổn định, bạn có thể tải bản cập nhật bằng cách nhấp vào Trợ giúp > Kiểm tra bản cập nhật (hoặc Android Studio > Kiểm tra bản cập nhật trên macOS). Nếu không, tải bản dựng ổn định mới nhất xuống.

Ngoài ra, nếu bạn đã tích cực sử dụng chức năng yêu cầu kéo GitHub trong IDE, thì bạn nên thu hồi mọi mã thông báo GitHub mà trình bổ trợ đang sử dụng. Vì trình bổ trợ có thể sử dụng tính năng tích hợp OAuth hoặc mã truy cập cá nhân (PAT), nên hãy kiểm tra cả hai và thu hồi nếu cần:

  • Để thu hồi quyền truy cập cho tính năng tích hợp OAuth, hãy chuyển đến Ứng dụng > Ứng dụng OAuth được uỷ quyền và thu hồi quyền truy cập cho mã thông báo Tích hợp IDE JetBrains.
  • Để thu hồi quyền truy cập cho PAT, hãy chuyển đến Mã truy cập cá nhân (Personal access tokens) và xoá mã thông báo được cấp cho trình bổ trợ GitHub. Tên mã thông báo mặc định là Trình bổ trợ tích hợp GitHub IntelliJ IDEA (IntelliJ IDEA GitHub integration plugin), nhưng bạn có thể đang sử dụng tên tuỳ chỉnh.

Sau khi thu hồi quyền truy cập cho(các) mã thông báo, bạn cần thiết lập lại trình bổ trợ để sử dụng lại tất cả các tính năng của trình bổ trợ, bao gồm cả các thao tác Git.

Chúng tôi xin lỗi vì mọi sự bất tiện và kêu gọi tất cả người dùng cập nhật ngay lập tức để bảo vệ mã và dữ liệu của họ.

Bản cập nhật nhỏ này cũng sửa các lỗi này .

Android Studio Jellyfish | 2023.3.1 Bản vá 1 và AGP 8.4.1 (tháng 5 năm 2024)

Bản cập nhật nhỏ này sửa các lỗi này.

Các lớp thư viện được rút gọn

Kể từ Trình bổ trợ Android cho Gradle 8.4, nếu một dự án thư viện Android được rút gọn, thì các lớp chương trình được rút gọn sẽ được xuất bản để xuất bản liên dự án. Điều này có nghĩa là nếu một ứng dụng phụ thuộc vào phiên bản rút gọn của các dự án phụ thư viện Android, thì tệp APK sẽ bao gồm các lớp thư viện Android được rút gọn. Bạn có thể cần điều chỉnh các quy tắc giữ thư viện trong trường hợp có các lớp bị thiếu trong tệp APK.

Trong trường hợp bạn đang tạo và xuất bản AAR, các tệp jar cục bộ mà thư viện của bạn phụ thuộc vào sẽ được đưa vào AAR ở dạng chưa rút gọn, nghĩa là trình rút gọn mã sẽ không chạy trên các tệp đó.

Để quay lại hành vi trước đó, hãy đặt android.disableMinifyLocalDependenciesForLibraries trong tệp gradle.propertiesbáo cáo lỗi. Các phiên bản AGP trong tương lai sẽ xoá cờ này.

Vấn đề đã khắc phục

Trình bổ trợ Android cho Gradle 8.4.2

Vấn đề đã khắc phục
Trình bổ trợ Android cho Gradle
AGP 8.4 có vẻ làm gián đoạn quá trình tải GMD xuống trên CI

Trình bổ trợ Android cho Gradle 8.4.1

Vấn đề đã khắc phục
Trình bổ trợ Android cho Gradle
Cho phép bỏ qua cảnh báo về việc JDK 21 ngừng hỗ trợ nhắm đến java 8
Dexer (D8)
java.lang.VerifyError: Lớp bị từ chối của trình xác minh
Lỗi chuyển đổi định dạng R8 phiên bản mới sau khi làm rối mã
Các bản dựng trung gian có thể không có nội dung nhân tạo toàn cục hoàn chỉnh cho các đoạn mã

Trình bổ trợ Android cho Gradle 8.4.0

Vấn đề đã khắc phục
Trình bổ trợ Android cho Gradle
Cải thiện thông báo lỗi về nguyên nhân không thể lựa chọn "--release" cho JavaCompile
Tắt tính năng lưu vào bộ nhớ đệm của MergeSourceSetFolders bằng cách sử dụng @DoNotCacheByDefault
Không thiết lập được phiên bản JaCoCo trong AGP 8.2.0
DynamicFeatureBuildType bị thiếu isDebuggable
Các lớp thư viện đã rút gọn không được xuất bản đúng cách để sử dụng liên dự án
Cung cấp API Variant#sources loại trừ các tệp đã tạo
Các mô hình AGP không chứa các phần phụ thuộc của dự án nền tảng java
ExtractAarTransform tạo classes.jar không thể tái tạo các AAR (đề xuất được tự động áp dụng) không có classes.jar
Cho phép định cấu hình sourceInformation từ ComposeOptions
Không tìm thấy trường: sdk_runtime trong thông báo android.bundle.DeviceSpec
Hỗ trợ cho compileOnlyApi
R8 không hoạt động được trên mô-đun thư viện khi tính năng xử lý tài nguyên bị tắt
Thêm khả năng thay đổi tên cấu phần phần mềm trong quá trình chuyển đổi
Thao tác thêm đầu ra tác vụ dưới dạng srcDir của sourceSets.androidMain.resources không tạo ra phần phụ thuộc tác vụ
AndroidPluginVersion.toString() thiếu các số 0 ở đầu
Artifacts.add(FileSystemLocation) phải bị hạn chế hơn.
AGP 8.3.0-alpha11 tạo tệp APK phát hành gặp sự cố khi khởi động bằng android.content.res.Resources$NotFoundException
Không thực hiện được tác vụ cài đặt Trình bổ trợ Android cho Gradle 8.2.0 trong dự án sử dụng các tính năng động
Không biên dịch được AIDL do IndexOutOfBoundsException: Index 0 out of bounds for length 0
Vấn đề về việc xử lý các đầu vào gia tăng của MergeJavaResourcesTask
AGP 8.3.0-alpha02 phụ thuộc vào các thư viện có lỗ hổng bảo mật đã biết
Mẫu hoạt động đã chọn yêu cầu dự án có các phần phụ thuộc androidx.*
Trợ lý nâng cấp AGP vô tình xoá consumerProguardFiles khỏi mô-đun
Trợ lý nâng cấp AGP tải vô hạn
SourceDirectories#static không được phụ thuộc vào tác vụ GenerateBuildConfig
Bản xem trước của Compose không thể phân giải các lớp từ phần phụ thuộc bắc cầu
AGP 8.3 làm gián đoạn tác vụ zipApksFor
Các cấu phần phần mềm AndroidX Desktop được đóng gói trong tệp APK Android
Tìm lỗi mã nguồn
GradleModelMocker của khung kiểm thử tìm lỗi mã nguồn không cho phép đặt phiên bản thư viện
Tìm lỗi mã nguồn K2 UAST: UCallableReferenceExpression báo cáo sai qualifierType
Tìm lỗi mã nguồn dương tính giả với useK2Uast=true với các hàm bị ghi đè
[Công cụ xây dựng/Tìm lỗi mã nguồn] Thuộc tính hàm khởi tạo ChecksSdkIntAtLeast
Tích hợp công cụ tìm lỗi mã nguồn
Tìm lỗi mã nguồn không thể phân biệt phần phụ thuộc KMP