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à đ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 8.4 hỗ trợ là cấp độ API 34. 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 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: 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ể để 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ó một bản dựng Android Studio trên kênh ổn định, bạn có thể nhận 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, hãy tải bản dựng ổn định mới nhất xuống.

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

  • Để thu hồi quyền truy cập cho chế độ tích hợp OAuth, hãy chuyển đến phần Applications (Ứng dụng) > Authorized OAuth Apps (Ứng dụng OAuth được uỷ quyền) rồi thu hồi quyền truy cập cho mã thông báo JetBrains IDE Integration (Chế độ tích hợp IDE JetBrains).
  • Để thu hồi quyền truy cập cho PAT, hãy chuyển đến phần Personal access tokens (Mã truy cập cá nhân) rồi 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 của IntelliJ IDEA, 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ợ để 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) hoạt động trở lại.

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 để 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 bị thu hẹp

Kể từ Android Gradle Plugin 8.4, nếu một dự án thư viện Android được rút gọn, các lớp chương trình rút gọn sẽ được xuất bản để xuất bản giữa các 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 con trong thư viện Android, thì APK sẽ bao gồm các lớp thư viện Android rút gọn. Bạn có thể cần điều chỉnh các quy tắc lưu giữ thư viện trong trường hợp có các lớp bị thiếu trong APK.

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

Để 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 sau này sẽ xoá cờ này.

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

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
Quá trình biên dịch AIDL không thành công với IndexOutOfBoundsException: Chỉ mục 0 vượt quá giới hạn cho độ dài 0
Vấn đề xử lý đầu vào gia tăng 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 xoá consumerProguardFiles khỏi mô-đun một cách nhầm lẫn
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 zipApksFor Task
Các cấu phần phần mềm AndroidX Desktop được đóng gói trong 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
Dương tính giả với tìm lỗi mã nguồn với useK2Uast=true với các hàm nạp chồng
[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
Công cụ tìm lỗi mã nguồn không thể phân biệt một phần phụ thuộc KMP

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 chặn cảnh báo về việc JDK 21 không còn 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ã nguồn
Các bản dựng trung gian có thể không có nội dung tổng hợp toàn cầu hoàn chỉnh cho các phần giữ chỗ

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