Informacje o wersji 8.9 wtyczki Androida do obsługi Gradle

31 marca 2021 r. repozytorium JCenter stało się dostępne tylko do odczytu. Więcej informacji znajdziesz w aktualizacji usługi JCenter.

System kompilacji Android Studio jest oparty na Gradle, a wtyczka Androida do obsługi Gradle dodaje kilka funkcji specyficznych dla kompilacji aplikacji na Androida. Chociaż wtyczka Androida do obsługi Gradle (AGP) jest zwykle aktualizowana w tym samym czasie co Android Studio, może działać niezależnie od tej aplikacji i być aktualizowana osobno.

Z tej strony dowiesz się, jak aktualizować narzędzia Gradle i co zawiera najnowsza aktualizacja. Informacje o wersjach wtyczki Gradle na Androida znajdziesz w informacjach o poprzednich wersjach.

Aby sprawdzić, co zostało naprawione w tej wersji wtyczki Gradle dla Androida, zapoznaj się z rozwiązanymi problemami.

Ogólne omówienie nadchodzących zmian w funkcjonalnościach wtyczki Androida do obsługi Gradle znajdziesz w  planie rozwoju wtyczki Androida do obsługi Gradle.

Szczegółowe informacje o konfigurowaniu kompilacji Androida za pomocą Gradle znajdziesz na tych stronach:

Więcej informacji o systemie kompilacji Gradle znajdziesz w przewodniku użytkownika Gradle.

Aktualizacja wtyczki Androida do obsługi Gradle

Podczas aktualizacji Android Studio możesz zobaczyć prośbę o automatyczne zaktualizowanie wtyczki Androida do obsługi Gradle do najnowszej dostępnej wersji. Możesz zaakceptować aktualizację lub ręcznie określić wersję na podstawie wymagań kompilacji projektu.

Wersję wtyczki możesz określić w menu Plik > Struktura projektu > Projekt w Android Studio lub w pliku najwyższego poziomu build.gradle.kts. Wersja wtyczki dotyczy wszystkich modułów utworzonych w tym projekcie Android Studio. W tym przykładzie z pliku build.gradle.kts ustawiamy wersję wtyczki 8.9.0:

KotlinGroovy
plugins {
    id("com.android.application") version "8.9.0" apply false
    id("com.android.library") version "8.9.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.10" apply false
}
plugins {
    id 'com.android.application' version '8.9.0' apply false
    id 'com.android.library' version '8.9.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.10' apply false
}

Uwaga: w numerach wersji nie należy używać dynamicznych zależności, takich jak 'com.android.tools.build:gradle:8.9.+'. Korzystanie z tej funkcji może spowodować nieoczekiwane aktualizacje wersji i trudności w rozwiązywaniu różnic między wersjami.

Jeśli wybrana wersja wtyczki nie została pobrana, Gradle pobierze ją przy następnej kompilacji projektu lub po kliknięciu Plik > Synchronizuj projekt z plikami Gradle na pasku menu Android Studio.

Aktualizacja Gradle

Podczas aktualizacji Android Studio możesz zobaczyć prośbę o zaktualizowanie Gradle do najnowszej dostępnej wersji. Możesz zaakceptować tę aktualizację lub ręcznie określić wersję na podstawie wymagań kompilacji projektu.

W tabeli poniżej znajdziesz informacje o tym, która wersja Gradle jest wymagana w przypadku każdej wersji wtyczki Androida do obsługi Gradle. Aby uzyskać najlepszą wydajność, używaj najnowszej wersji Gradle i wtyczki.

Wersja wtyczkiMinimalna wymagana wersja Gradle
8,98.11.1
8.88.10.2
8,78,9
8,68,7
8,58,7
8.48,6
8.38.4
8.28.2
8.1z Androidem 8.0
z Androidem 8.0z Androidem 8.0
7.47,5
Wersja wtyczkiWymagana wersja Gradle
7.37.4
7.27.3.3
7.17.2
7,07,0
4.2.0 lub nowszy6.7.1
4.1.0 lub nowszy6,5+
4.0.0 lub nowsze6.1.1+
3.6.0 – 3.6.45.6.4+
3.5.0 – 3.5.45.4.1+
3.4.0 – 3.4.35.1.1+
3.3.0 – 3.3.34.10.1+
3.2.0 – 3.2.14,6+
3.1.0 lub nowsza4.4+
3.0.0 lub nowsze4.1+
2.3.0 lub nowsza3,3+
2.1.3 – 2.2.32.14.1 – 3.5
2.0.0 – 2.1.22.10–2.13
1.5.02.2.1 – 2.13
1.2.0 – 1.3.12.2.1 – 2.9
1.0.0 – 1.1.32.2.1 – 2.3

Wersję Gradle możesz określić w menu Plik > Struktura projektu > Projekt w Android Studio lub zaktualizować wersję Gradle za pomocą wiersza poleceń. Najlepszym sposobem jest użycie narzędzia wiersza poleceń Gradle Wrapper, które aktualizuje skrypty gradlew. W tym przykładzie za pomocą Gradle Wrapper ustawiamy wersję Gradle na 8.9. Pamiętaj, że musisz uruchomić to polecenie 2 razy, aby uaktualnić Gradle i sam Gradle Wrapper (więcej informacji znajdziesz w artykule Uaktualnianie Gradle Wrapper).

gradle wrapper --gradle-version 8.9

W niektórych przypadkach może się to jednak nie udać, np. gdy właśnie zaktualizowano AGP i nie jest ono już zgodne z bieżącą wersją Gradle. W takim przypadku musisz edytować odwołanie do dystrybucji Gradle w pliku gradle/wrapper/gradle-wrapper.properties. W tym przykładzie w pliku gradle-wrapper.properties ustawiamy wersję Gradle na 8.9.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.9-bin.zip
...

Wtyczka Androida do obsługi Gradle i zgodność z Android Studio

System kompilacji Android Studio jest oparty na Gradle, a wtyczka Android Gradle (AGP) dodaje kilka funkcji specyficznych dla kompilowania aplikacji na Androida. W tabeli poniżej znajdziesz, która wersja AGP jest wymagana w przypadku każdej wersji Android Studio.

Wersja Android Studio Wymagana wersja AGP
Meerkat | 2024.3.1 3,2–8,9
Pakiet nowych funkcji Ladybug | 2024.2.2 3,2–8,8
Biedronka | 2024.2.1 3.2–8.7
Koala Feature Drop | 2024.1.2 3.2–8.6
Koala | 2024.1.1 3,2–8,5
Jellyfish | 2023.3.1 3,2–8,4
Iguana | 2023.2.1 3.2–8.3
Hedgehog | 2023.1.1 3.2–8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2–8.0
Wersja Android Studio Wymagana wersja AGP
Electric Eel | 2022.1.1 3,2–7,4
Dolphin | 2021.3.1 3,2–7,3
Wiewiórka | 2021.2.1 3,2–7,2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1–7.0

Informacje o nowościach we wtyczce Androida do obsługi Gradle znajdziesz w notatkach do wersji wtyczki Androida do obsługi Gradle.

Minimalne wersje narzędzi dla poziomu interfejsu API Androida

Istnieją minimalne wersje Android Studio i AGP, które obsługują określony poziom interfejsu API. Korzystanie z wersji Android Studio lub AGP starszych niż wymagane przez targetSdk lub compileSdk w Twoim projekcie może spowodować nieoczekiwane problemy. Zalecamy używanie najnowszej wersji w wersji zapoznawczej Android Studio i AGP do pracy nad projektami przeznaczonymi na wersje zapoznawcze systemu operacyjnego Android. Możesz zainstalować wersje podglądowe Android Studio obok stabilnej wersji.

Minimalne wersje Android Studio i AGP:

Poziom interfejsu API Minimalna wersja Android Studio Minimalna wersja AGP
Baklava Preview Meerkat | 2024.3.1 8.9.0
35 Koala Feature Drop | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

Zmiany dotyczące wersji (listopad 2020 r.)

Aktualizujemy numerację wersji wtyczki Androida do obsługi Gradle (AGP), aby była bardziej zbliżona do numeracji narzędzia do kompilacji Gradle.

Oto najważniejsze zmiany:

  • AGP będzie teraz używać wersji semantycznej, a zmiany powodujące przerwanie działania będą kierowane na główne wersje.

  • W ciągu roku będzie wydawana jedna główna wersja AGP, która będzie zgodna z główną wersją Gradle.

  • Wersja po AGP 4.2 będzie w wersji 7.0 i będzie wymagać uaktualnienia do wersji Gradle 7.x. Każda główna wersja AGP będzie wymagać uaktualnienia wersji głównej w podstawowym narzędziu Gradle.

  • Interfejsy API zostaną wycofane z okresem około 1 roku, a w tym samym czasie udostępnione zostaną funkcje zastępcze. Wycofane interfejsy API zostaną usunięte około roku później podczas kolejnej dużej aktualizacji.

Zgodność

Maksymalny poziom interfejsu API obsługiwany przez wtyczkę Gradle 8.9 to poziom 35. Oto inne informacje o zgodności:

Minimalna wersja Wersja domyślna Uwagi
Gradle 8.11.1 8.11.1 Więcej informacji znajdziesz w artykule Aktualizowanie Gradle.
Narzędzia do kompilowania pakietu SDK 35.0.0 35.0.0 Zainstaluj lub skonfiguruj narzędzia do kompilowania pakietu SDK.
NDK Nie dotyczy 27.0.12077973 Zainstaluj lub skonfiguruj inną wersję NDK.
JDK 17 17 Więcej informacji znajdziesz w artykule Ustawianie wersji JDK.

Rozwiązane problemy

Wtyczka Androida do obsługi Gradle 8.9.0

Rozwiązane problemy
Wtyczka Gradle na Androida
Wyświetlanie komunikatu o błędzie, który umożliwia działanie, gdy zadanie konfiguracji GMD zakończy się niepowodzeniem z powodu braku miejsca na dysku
Wtyczka com.android.settings nie rozpoznaje wartości targetSdk
Nieprzydatny błąd „compileSdkVersion is not specified”. Dodaj go do pliku build.gradle.
Brak opcji „Budowa czysta” w menu „Budowa”
Maybe let AGP's built-in Kotlin support auto-add kotlin stdlib dependency
Zaktualizuj funkcję shouldConfigureKotlinPlatformAttribute, aby obsługiwać wbudowaną obsługę Kotlina
Podać składnię Kotlin Gradle w komunikacie o błędzie dla polecenia „checkTestedAppObfuscationRelease”
Błąd biblioteki Fused, gdy można poprawić nierozwiązaną zależność
Właściwości systemowe z pliku gradle.properties nie są przekazywane do R8 Gradle Workers w osobnych procesach
Ustaw BuiltArtifact.outputFile jako typ pliku.
Brak przestrzeni nazw w złączonej bibliotece nie powoduje wyświetlenia odpowiedniego komunikatu o błędzie
opcje lint w AGP 7.1.0-alpha08 nie zezwalają na stdout
Wtyczka Androida do obsługi Gradle: warianty powinny udostępniać nazwy zestawów źródeł
Pamięć podręczna konfiguracji jest wrażliwa na ustawienie zmiennej środowiskowej TERM.
AndroidComponentsExtension.addSourceSetConfigurations nie działa, gdy włączone są statystyki
Skrypt inicjalizacji „C:\Users\mój_komputer\AppData\Local\Temp\ijresolvers2.gradle” wiersz: 162
AndroidComponentsExtension.addSourceSetConfigurations nie działa, gdy włączone są statystyki
Dexer (D8)
java.lang.VerifyError: Verifier rejected class: [0x430] copy1 v2<-v264 type=Undefined cat=3
Lint
Lint ulega awarii podczas sprawdzania Gradle przez Lint
Lintowanie kończy się niepowodzeniem z wyjątkiem InstantiationException bez komunikatu o wyjątku w wyświetleniu ścieżki wywołania lintu
Nieprawidłowa kontrola lint android.permission.SCHEDULE_EXACT_ALARM jest przyznawana tylko aplikacjom systemowym
Do metody Compose stringResource należy zastosować sprawdzanie StringFormatInvalid
Adnotacja RequiresFeature nie działa w przypadku plików Kotlin
kotlin android.os.Handler removeCallbacks Runnable
Linting WrongConstant w definicji zamiast użycia stałej za pomocą shift
Linter WrongConstant pojawia się dwukrotnie
Wyjątek czasu wykonywania w wersji API 26 i niżej z nieobsługiwanym interfejsem Java nio API (bez błędu lint)
Lint uniemożliwia używanie interfejsu API RequiresApi nawet w przypadku prywatnej metody pomocniczej w testach
Tryb K2 powoduje wyświetlenie ostrzeżenia RestrictedApi podczas używania w Android Studio funkcji .hasRoute(Route::class).
Lint sugeruje zastąpienie @RequiresExtension na potrzeby testów elementem @SdkSuppress, który nie obsługuje rozszerzeń pakietu SDK
Lint błędnie zgłasza niepotrzebny układ zagnieżdżony, gdy FrameLayout jest używany z fitSystemWindows do owinięcia podrzędnego RelativeLayout, który wymaga niestandardowego wypełnienia.
Reguła lint CoarseFineLocation nie uwzględnia atrybutu maxSdkVersion
AppLinkSplitToWebAndCustom jest problemem nieznanym w lint 8.7.3
Sprawdzanie Lint StringEscapeDetector ulega awarii w przypadku „\\ "”
Nieprawidłowe ostrzeżenie lint dotyczące adnotacji@Parcelize w przypadku zamkniętych interfejsów
AS 2024.3.1.4 zawiesza się sporadycznie podczas edytowania tekstów w Kotlinie.
Integracja z lintem
lintVitalRelease nie jest uruchamiany automatycznie podczas kompilowania pakietu aplikacji
Shrinker (R8)
Gson proguard nie działa prawidłowo po przejściu na AGP 8.8
java.lang.VerifyError: Verifier rejected class
Leanback ulega awarii, gdy jest zoptymalizowany za pomocą R8 zawartego w AGP 8.10.0-alpha04