Kotlin DSL jest domyślnym językiem konfiguracji kompilacji
W nowych projektach do konfiguracji kompilacji domyślnie używany jest język Kotlin DSL (build.gradle.kts). Zapewnia to lepsze wrażenia podczas edytowania niż Groovy DSL (build.gradle) dzięki wyróżnianiu składni, uzupełnianiu kodu i nawigacji do deklaracji. Jeśli używasz AGP 8.1 i Kotlin DSL do konfiguracji kompilacji, dla najlepszych wrażeń zalecamy używanie Gradle 8.1. Więcej informacji znajdziesz w przewodniku po migracji do Kotlin DSL.
Automatyczna obsługa języka według aplikacji
Od wersji Androida Studio Giraffe Canary 7 i AGP 8.1.0-alpha07 możesz automatycznie skonfigurować aplikację tak, aby obsługiwała ustawienia języka. Na podstawie zasobów projektu wtyczka Androida do obsługi Gradle generuje plik LocaleConfig i dodaje do niego odwołanie w końcowym pliku manifestu, więc nie musisz już tego robić ręcznie. AGP korzysta z zasobów w folderach res modułów aplikacji i wszelkich zależności modułów biblioteki, aby określić, które ustawienia regionalne mają być uwzględnione w pliku LocaleConfig.
Pamiętaj, że funkcja automatycznego ustawiania języka dla poszczególnych aplikacji jest obsługiwana w przypadku aplikacji działających na Androidzie 13 (API na poziomie 33) lub nowszym. Aby korzystać z tej funkcji, musisz ustawić wartość
compileSdkVersion na co najmniej 33. Aby skonfigurować wybór języka według aplikacji w starszych wersjach Androida, nadal musisz używać interfejsów API i selektorów języka w aplikacji.
Aby włączyć automatyczną obsługę języka w poszczególnych aplikacjach, określ domyślne ustawienia regionalne:
W folderze res modułu aplikacji utwórz nowy plik o nazwie resources.properties.
W pliku resources.properties ustaw domyślne ustawienia regionalne za pomocą etykiety unqualifiedResLocale. Aby utworzyć nazwy ustawień regionalnych, połącz kod języka z opcjonalnymi kodami skryptu i regionu, oddzielając je myślnikiem:
Jeśli na przykład domyślnym językiem jest angielski (Stany Zjednoczone):
unqualifiedResLocale=en-US
AGP dodaje ten domyślny region i wszystkie określone przez Ciebie regiony alternatywne, korzystając z katalogów values-* w folderze res, do automatycznie wygenerowanego pliku LocaleConfig.
Automatyczne obsługiwanie języka w poszczególnych aplikacjach jest domyślnie wyłączone. Aby włączyć tę funkcję, użyj ustawienia generateLocaleConfig w bloku androidResources {} pliku build.gradle.kts na poziomie modułu (pliku build.gradle, jeśli używasz Groovy):
Android Lint zawiera kod bajtowy przeznaczony dla JVM 17
Od wersji AGP 8.1.0-alpha04 narzędzie Android Lint zawiera kod bajtowy przeznaczony dla JVM 17. Jeśli piszesz niestandardowe testy lint, musisz skompilować je za pomocą JDK 17 lub nowszej wersji i określić jvmTarget = '17' w opcjach kompilatora Kotlin.
Ustawienie kompresji biblioteki natywnej przeniesione do DSL
Od wersji AGP 8.1.0-alpha10 będziesz otrzymywać ostrzeżenie, jeśli nie skonfigurujesz kompresji biblioteki natywnej za pomocą DSL zamiast pliku manifestu. Poniższe wskazówki wyjaśniają, jak zaktualizować konfigurację, aby używać DSL. Aby uzyskać pomoc w wprowadzaniu tych zmian, użyj Asystenta uaktualniania AGP (Narzędzia > Asystent uaktualniania AGP).
Aby używać nieskompresowanych bibliotek natywnych, usuń atrybut android::extractNativeLibs z pliku manifestu i dodaj poniższy kod do pliku build.gradle.kts na poziomie modułu (pliku build.gradle, jeśli używasz Groovy):
Włączenie tej opcji bez podania konfiguracji podpisywania powoduje, że AGP używa domyślnej konfiguracji podpisywania debugowania podczas uruchamiania kompilacji z możliwością profilowania lub debugowania. Ta flaga jest domyślnie wyłączona, aby zachęcić autorów kompilacji do deklarowania konkretnych konfiguracji podpisywania profilowania.
android.experimental.library.desugarAndroidTest
AGP 8.0
false
Ta flaga umożliwia twórcom bibliotek włączenie desugaryzacji biblioteki podstawowej w przypadku testowych plików APK bez wpływu na wygenerowany plik AAR, np. przez linting.
W przyszłości planujemy wprowadzić obsługę tego działania w interfejsie Variant API.
Jeśli ta opcja jest włączona, zarządzane urządzenia Gradle umożliwiają zdefiniowanie przez użytkownika niestandardowego typu urządzenia, który może być dostarczony przez wtyczkę. Ta flaga musi być włączona, jeśli chcesz używać wtyczki Laboratorium Firebase.
android.lint.printStackTrace
AGP 8.0
false
Jeśli ta opcja jest włączona, w przypadku awarii narzędzie Android Lint wyświetli ślad stosu. Ten flag
ma takie same możliwości jak zmienna środowiskowa LINT_PRINT_STACKTRACE.
Określa maksymalną liczbę równoczesnych urządzeń zarządzanych przez Gradle (AVD), które mogą być aktywne w danym momencie. Jeśli wartość wynosi 0 lub jest ujemna, nie ma maksymalnej liczby urządzeń.
[AGP 8.1.0] ./gradlew test kończy się niepowodzeniem z błędem „Unable to find manifest output”, jeśli zarówno splits.abi.isEnable, jak i testOptions.unitTests.isIncludeAndroidResources mają wartość true
R8 kończy się niepowodzeniem z komunikatem „Undefined value encountered during compilation” (Podczas kompilacji wykryto niezdefiniowaną wartość) w przypadku pliku play-services-measurement-21.3.0-runtime.jar
[AGP 8.1.0] ./gradlew test kończy się niepowodzeniem z błędem „Unable to find manifest output”, jeśli zarówno splits.abi.isEnable, jak i testOptions.unitTests.isIncludeAndroidResources mają wartość true
Nie uruchamiaj zadania dexing na klasach podprojektów, jeśli zostały już one przekształcone w artefakty.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-08 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-08-08 UTC."],[],[]]