Theo mặc định, các dự án mới hiện sử dụng Kotlin DSL (build.gradle.kts) cho cấu hình bản dựng. Điều này mang lại trải nghiệm chỉnh sửa tốt hơn so với Groovy DSL (build.gradle) nhờ tính năng làm nổi bật cú pháp, hoàn tất mã và điều hướng đến phần khai báo. Xin lưu ý rằng nếu đang sử dụng AGP 8.1 và DSL Kotlin cho cấu hình bản dựng, bạn nên sử dụng Gradle 8.1 để có trải nghiệm tốt nhất. Để tìm hiểu thêm, hãy xem hướng dẫn di chuyển DSL Kotlin.
Tự động hỗ trợ ngôn ngữ cho mỗi ứng dụng
Kể từ Android Studio Giraffe Canary 7 và AGP 8.1.0-alpha07, bạn có thể định cấu hình ứng dụng để tự động hỗ trợ các lựa chọn ưu tiên về ngôn ngữ cho mỗi ứng dụng. Dựa trên tài nguyên của dự án, trình bổ trợ Android cho Gradle sẽ tạo tệp LocaleConfig và thêm mục tham chiếu đến tệp đó trong tệp kê khai cuối cùng, do đó, bạn không còn phải tạo hoặc cập nhật tệp theo cách thủ công nữa. AGP sẽ sử dụng các tài nguyên trong thư mục res của mô-đun ứng dụng và mọi phần phụ thuộc của mô-đun thư viện để xác định ngôn ngữ cần đưa vào tệp LocaleConfig.
Xin lưu ý rằng tính năng ngôn ngữ tự động cho mỗi ứng dụng hỗ trợ các ứng dụng chạy Android 13 (API cấp 33) trở lên. Để dùng tính năng này, bạn phải đặt compileSdkVersion thành 33 trở lên. Để định cấu hình các lựa chọn ưu tiên về ngôn ngữ cho mỗi ứng dụng đối với các phiên bản Android trước, bạn vẫn cần phải sử dụng các API và bộ chọn ngôn ngữ trong ứng dụng.
Để bật tính năng tự động hỗ trợ ngôn ngữ cho mỗi ứng dụng, hãy chỉ định một ngôn ngữ mặc định:
Trong thư mục res của mô-đun ứng dụng, hãy tạo một tệp mới có tên resources.properties.
Trong tệp resources.properties, hãy đặt ngôn ngữ mặc định bằng nhãn unqualifiedResLocale. Để tạo tên ngôn ngữ, hãy kết hợp mã ngôn ngữ với tập lệnh tuỳ chọn và mã vùng, phân tách mỗi mã bằng một dấu gạch ngang:
Ngôn ngữ: Sử dụng mã gồm hai hoặc ba chữ cái theo tiêu chuẩn ISO 639-1.
Tập lệnh (không bắt buộc): Sử dụng mã theo ISO 15924.
Khu vực (không bắt buộc): Sử dụng mã gồm hai chữ cái theo tiêu chuẩn ISO 3166-1-alpha-2 hoặc mã gồm 3 chữ số theo tiêu chuẩn UN_M.49.
Chẳng hạn, nếu ngôn ngữ mặc định của bạn là tiếng Anh Mỹ:
unqualifiedResLocale=en-US
AGP sẽ thêm ngôn ngữ mặc định này và mọi ngôn ngữ thay thế mà bạn đã chỉ định (bằng cách dùng các đường dẫn values-* trong thư mục res) vào tệp LocaleConfig được tạo tự động.
Tính năng tự động hỗ trợ ngôn ngữ cho mỗi ứng dụng bị tắt theo mặc định. Để bật tính năng này, hãy sử dụng chế độ cài đặt generateLocaleConfig trong khối androidResources {} của tệp build.gradle.kts cấp mô-đun (tệp build.gradle nếu bạn đang sử dụng Groovy):
Công cụ tìm lỗi mã nguồn Android chứa mã byte nhắm đến JVM 17
Kể từ AGP 8.1.0-alpha04, Android Lint chứa mã byte nhắm đến JVM 17. Nếu viết quy trình kiểm tra tìm lỗi mã nguồn tuỳ chỉnh, bạn cần biên dịch bằng JDK 17 trở lên và chỉ định jvmTarget = '17' trong các tuỳ chọn trình biên dịch Kotlin.
Chế độ cài đặt nén thư viện gốc đã chuyển sang DSL
Kể từ AGP 8.1.0-alpha10, bạn sẽ nhận được cảnh báo nếu không định cấu hình tính năng nén thư viện gốc bằng DSL thay vì tệp kê khai. Hướng dẫn sau đây giải thích cách cập nhật cấu hình để sử dụng DSL. Để được trợ giúp thực hiện các bản cập nhật này, hãy sử dụng Trợ lý nâng cấp AGP (Tools > AGP Upgrade Assistant) (Công cụ > Trợ lý nâng cấp AGP).
Để sử dụng thư viện gốc không nén, hãy xoá thuộc tính android::extractNativeLibs khỏi tệp kê khai và thêm mã sau vào tệp build.gradle.kts cấp mô-đun (tệp build.gradle nếu bạn đang sử dụng Groovy):
Việc bật tuỳ chọn này mà không chỉ định cấu hình ký sẽ khiến AGP sử dụng cấu hình ký gỡ lỗi mặc định khi chạy bản dựng có thể định cấu hình hoặc gỡ lỗi. Theo mặc định, cờ này bị tắt để khuyến khích các tác giả bản dựng khai báo cấu hình ký hồ sơ cụ thể.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
Cờ này cho phép trình tạo thư viện bật tính năng đơn giản hoá thư viện cốt lõi cho các tệp APK kiểm thử mà không ảnh hưởng đến AAR được tạo, chẳng hạn như thông qua tính năng tìm lỗi mã nguồn.
Chúng tôi dự định sẽ hỗ trợ hành vi này trong Variant API.
Nếu được bật, Thiết bị do Gradle quản lý sẽ cho phép một loại thiết bị tuỳ chỉnh do người dùng xác định mà trình bổ trợ có thể cung cấp. Bạn phải bật cờ này nếu muốn sử dụng trình bổ trợ Phòng kiểm thử Firebase.
android.lint.printStackTrace
AGP 8.0
false
Nếu được bật, công cụ tìm lỗi mã nguồn Android sẽ in một dấu vết ngăn xếp nếu gặp sự cố. Cờ này có các chức năng giống như biến môi trường LINT_PRINT_STACKTRACE.
Chỉ định số lượng tối đa Thiết bị do Gradle quản lý (AVD) đồng thời hoạt động tại một thời điểm bất kỳ. Nếu giá trị là 0 hoặc âm, thì sẽ không có số lượng thiết bị tối đa.
Lỗi: "Enable KSP and use the KSP processor for this dependency instead" (Thay vào đó, hãy bật KSP và sử dụng bộ xử lý KSP cho phần phụ thuộc này) chỉ truy cập tới một trang web
[AGP 8.1.0] Kiểm thử ./gradlew không thành công và hiện thông báo lỗi "Unable to find manifest output" (Không tìm thấy đầu ra tệp kê khai) nếu cả splits.abi.isEnable và testOptions.unitTests.isIncludeAndroidResources đều mang giá trị true
R8 không thành công với lỗi "Undefined value encountered during compilation" (Gặp giá trị không xác định trong quá trình biên dịch) cho play-services-measurement-21.3.0-runtime.jar
[AGP 8.1.0] Kiểm thử ./gradlew không thành công và hiện thông báo lỗi "Unable to find manifest output" (Không tìm thấy đầu ra tệp kê khai) nếu cả splits.abi.isEnable và testOptions.unitTests.isIncludeAndroidResources đều mang giá trị true
Không chạy tác vụ tạo tệp dex trên các lớp của dự án phụ khi các lớp đó đã được tạo tệp dex thông qua việc biến đổi cấu phần phần mềm
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2024-12-03 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2024-12-03 UTC."],[],[]]