Informacje o wersji 8.7 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 równolegle z 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 wersja. 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. Ten przykład ustawia dla wtyczki w wersji 8.7.0 z pliku build.gradle.kts:

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

Uwaga: nie używaj zależności dynamicznych w numerach wersji, np. 'com.android.tools.build:gradle:8.7.+'. Korzystanie z tej funkcji może spowodować nieoczekiwane aktualizacje wersji i utrudnić rozwiązanie różnic między wersjami.

Jeśli wybrana wersja wtyczki nie została pobrana, Gradle pobierze ją następnym razem, gdy skompilujesz projekt lub klikniesz 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ć 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 poszczególnych wersji wtyczki Androida do obsługi Gradle. Aby uzyskać najlepszą wydajność, używaj najnowszej wersji Gradle i wtyczki.

Wersja wtyczkiMinimalna wymagana wersja Gradle
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

Starsze wersje

Wersja wtyczkiWymagana wersja Gradle
7.37.4
7.27.3.3
7.17.2
7,07,0
4.2.0+6.7.1
4.1.0 lub nowszy6,5+
4.0.0 lub nowsze6.1.1 lub nowszy
3.6.0 – 3.6.45.6.4 lub nowszy
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 nowszy4.4+
3.0.0 lub nowsze4.1+
2.3.0 lub nowsza3,3 lub nowszy
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ń. Preferowanym 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.7. Aby uaktualnić zarówno Gradle, jak i samą opakowanie Gradle Wrapper, musisz 2 razy uruchomić to polecenie (więcej informacji znajdziesz w artykule Uaktualnianie kodu Gradle Wrapper).

gradle wrapper --gradle-version 8.7

W niektórych przypadkach może się to jednak nie udać, jeśli na przykład po zaktualizowaniu interfejsu AGP nie jest on już zgodny z obecną wersją Gradle. W takim przypadku musisz edytować odwołanie do dystrybucji Gradle w pliku gradle/wrapper/gradle-wrapper.properties. Ten przykład ustawia wersję Gradle w pliku gradle-wrapper.properties na 8.7.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-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
Biedronka | 2024.2.1 3.2–8.7
Pakiet funkcji koala | 2.1.2024 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
Jeż | 1.1.2023 3.2-8.2
Giraffe | 2022.3.1 3.2–8.1
Flamingo | 2022.2.1 3,2–8,0

Starsze wersje

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 | 1.1.2021 3.2–7.1
Arctic Fox | 2020.3.1 3.1–7.0

Nowości w wtyczce Androida do obsługi Gradle znajdziesz w informacjach o wersji wtyczki Androida do 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. Używanie starszych wersji Androida Studio lub AGP niż wymagane przez targetSdk lub compileSdk projektu może spowodować nieoczekiwane problemy. Przy projektach kierowanych na wersje testowe systemu operacyjnego Android zalecamy korzystanie z najnowszych wersji przedpremierowych Android Studio i AGP. Możesz zainstalować wersje podglądowe Android Studio obok stabilnej wersji.

Minimalne wersje Android Studio i AGP to:

Poziom interfejsu API Minimalna wersja Android Studio Minimalna wersja AGP
35 Koala Feature Drop | 2024.2.1 8.6.0
34 Jeż | 1.1.2023 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, zgodna z wersją główną Gradle.

  • Po aktualizacji AGP 4.2 zostanie ona udostępniona w wersji 7.0 i będzie wymagać uaktualnienia Gradle do wersji 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ę Androida do obsługi Gradle 8.6 to poziom 34. Oto inne informacje o zgodności:

Minimalna wersja Wersja domyślna Uwagi
„Gradle” 8,9 8,9 „Aby dowiedzieć się więcej, przeczytaj o aktualizowaniu Gradle”.
Narzędzia do kompilowania pakietu SDK 34.0.0 34.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 „Aby dowiedzieć się więcej, zapoznaj się z informacjami o ustawianiu wersji JDK”.

Zmiana działania lintowania

Począwszy od wtyczki Androida do obsługi Gradle w wersji 8.7.0-alfa08, jeśli podczas uruchamiania lintowania za pomocą Gradle istnieje zdarzenie LintError, zadanie analizy lintowania zgłosi wyjątek. Ta zmiana zapobiega buforowaniu rzadkich błędów w pamięci podręcznej kompilacji.

Ta zmiana powoduje jednak przerwanie kompilacji w projektach, które w plikach bazowych lintowego mają autentyczne instancje LintError. Komunikat o błędzie zawiera informacje o tym, które kontrole lint powodują problem. W niektórych przypadkach problem może rozwiązać zaktualizowanie odpowiedniej biblioteki zależnej. Jeśli nie, możesz wyłączyć problemowe sprawdzanie lint, dopóki autor biblioteki nie naprawi problemu.

Rozwiązane problemy

Wtyczka Androida do obsługi Gradle 8.7.0

Rozwiązane problemy
Wtyczka Android Gradle
AGP powinien twierdzić, że obsługuje interfejs API 35, który wkrótce zostanie udostępniony
AGP 8.5: uruchamianie większej liczby zadań „mergeDebugResources”, co spowalnia kompilacje
Ustaw ndk 27 jako domyślny pakiet NDK w pakiecie AGP.
AGP powinien twierdzić, że obsługuje interfejs API 35, który wkrótce zostanie udostępniony
AGP powinien twierdzić, że obsługuje interfejs API 35, który wkrótce zostanie udostępniony
Uruchamianie Androida lint zakończyło się niepowodzeniem z wyjątkiem NoSuchFileException
BuildType#initWith kopiuje blok przetwarzania, ale konfiguracja Proguard nie jest stosowana
Nie można scalić tagów foregroundServiceType
Nie udało się uruchomić lint Androida z powodu NoSuchFileException
Lint
Lint powinien sprawdzać, czy nieprawidłowe obiekty są używane jako ViewGroups
„android:host is missing” w przypadku identyfikatorów URI z hostem null
Niezgodność KtAnalysisSessionProvider z kontrolami lint wprowadzonymi w wersji 8.7.0-alpha04
Błędna wartość „fałszywie dodatnia” w przypadku użycia metody PackageManager. musząInfoFlags.of w połączeniu z Kotlinem.

Wtyczka Androida do obsługi Gradle w wersji 8.7.1

Rozwiązane problemy
Wtyczka Android Gradle
agp docs have a lot of TBD
Lint
AGP 8.6.1: Wsteczny regres – błąd sprawdzania poprawności kodu źródłowego WrongConstant podczas używania funkcji [Int].toLong() w ramach funkcji @LongDef w Kotlinie
Błąd lint „At least one host must be specified” (Musisz podać co najmniej 1 hosta) podczas ustawiania schematu filtru intencji http lub https

Wtyczka Androida do obsługi Gradle 8.7.2

Rozwiązane problemy
Lint
AGP 8.7.0 – Lint False Positive RestrictedApi w NavOptionsBuilder.popUpTo
Shrinker (R8)
[R8 8.6.27] Implementacja metody zastąpiona przez „throw null”
Domyślne pliki Androida ProGuard wyświetlają ostrzeżenie, gdy są używane z obecną wersją R8
Jeśli wiadomość jest za duża, a MissingStartupProfileItemsDiagnostic powoduje awarię klienta Gradle, wystąpi błąd braku pamięci.