Wtyczka Androida do obsługi Gradle w wersji 8.7.0 (październik 2024 r.)

Wtyczka Androida do obsługi Gradle w wersji 8.7.0 to duża aktualizacja, która zawiera wiele nowych funkcji i ulepszeń.

Zgodność

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

Minimalna wersja Wersja domyślna Uwagi
„Gradle” 8,9 8,9 „Aby dowiedzieć się więcej, zapoznaj się z artykułem Aktualizowanie Gradle”.
Narzędzia do kompilowania pakietu SDK 34.0.0 34.0.0 Zainstaluj lub skonfiguruj narzędzia do kompilacji 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

Od wersji 8.7.0-alpha08 wtyczki Androida do obsługi Gradle, jeśli podczas uruchamiania lint za pomocą Gradle występuje błąd LintError, zadanie analizy lint wyrzuca wyjątek. Ta zmiana zapobiega przechowywaniu w pamięci podręcznej kompilacji rzadkich błędów.

Ta zmiana powoduje jednak problemy z kompilacją w przypadku projektów, które zawierają prawdziwe wystąpienia LintError w plikach bazowych lint. 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 Gradle na Androida
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 kompilację
Ustaw ndk 27 jako domyślny NDK w 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
Uruchamianie Androida lint zakończyło się niepowodzeniem z wyjątkiem 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
„Fałszywie dodatni” błąd WrongConstant podczas używania funkcji PackageManager.ResolveInfoFlags.of w Kotlinie

Wtyczka Androida do obsługi Gradle w wersji 8.7.1

Rozwiązane problemy
Wtyczka Gradle na Androida
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 – fałszywie pozytywny wynik lintu RestrictedApi w przypadku 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 aktualną wersją R8
Jeśli wiadomość jest za duża, a MissingStartupProfileItemsDiagnostic powoduje awarię klienta Gradle, wystąpi błąd braku pamięci.

Wtyczka Androida do obsługi Gradle 8.7.3

Rozwiązane problemy
Lint
Wiele ostrzeżeń o brakujących metodach interfejsu API analizy podczas uruchamiania lint
Nieprawidłowy wynik kontroli lint android.permission.SCHEDULE_EXACT_ALARM jest przyznawany tylko aplikacjom systemowym