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à API cấp 34. Sau đây là một số 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ã thông báo truy cập cho các bên trái phép.

Giải pháp: Jetbrains đã giải quyết vấn đề 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 Help > Check for Updates (Trợ giúp > Kiểm tra để tìm bản cập nhật) (hoặc Android Studio > Check for Updates (Android Studio > Kiểm tra để tìm 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 đã chủ động sử dụng chức năng yêu cầu gộp các thay đổi mà bạn thực hiện vào mã nguồn ban đầu (pull request) trên GitHub trong IDE, 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ã 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 tính năng tích hợp OAuth, hãy chuyển đến phần Ứng dụng > Ứng dụng OAuth được uỷ quyền rồi 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 phần 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 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 thành thật xin lỗi nếu có gì bất tiện và mong 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 bao gồm các bản sửa 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ừ Trình bổ trợ Android cho Gradle 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 thu nhỏ sẽ được phát hành để phát hành 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 thu gọn của các dự án phụ thư viện Android, thì APK sẽ bao gồm các lớp thư viện Android thu gọn. Bạn có thể cần điều chỉnh các quy tắc giữ lại thư viện trong trường hợp thiếu các lớp trong tệp APK.

Trong trường hợp bạn đang tạo và phát hành 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 chưa rút gọn, tức là trình rút gọn mã sẽ không chạy trên các tệp JAR đó.

Để quay lại hành vi trước đó, hãy đặt android.disableMinifyLocalDependenciesForLibraries trong tệp gradle.propertiesgửi 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.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 với IndexOutOfBoundsException: Chỉ mục 0 nằm ngoài giới hạn cho độ dài 0
Vấn đề xử lý dữ liệu đầ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á nhầm 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 trong 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 hỏng tác vụ zipApksFor
Cấu phần phần mềm AndroidX cho máy tính đượ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 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 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 ngừng hỗ trợ nhắm mục tiêu 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 mô-đun giả lập

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ẻ như làm gián đoạn quá trình tải GMD xuống trên CI