Wtyczka Androida do obsługi Gradle w wersji 8.4.0 (kwiecień 2024 r.)

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

Zgodność

Maksymalny poziom interfejsu API obsługiwany przez wtyczkę Androida do Gradle w wersji 8.4 to poziom 34. Oto inne informacje o zgodności:

Wersja minimalna Wersja domyślna Uwagi
Gradle 8.6 8.6 Więcej informacji znajdziesz w sekcji Aktualizowanie Gradle.
SDK Build Tools 34.0.0 34.0.0 Zainstaluj lub skonfiguruj narzędzia do kompilacji pakietu SDK.
NDK Nie dotyczy 26.1.10909125 Zainstaluj lub skonfiguruj inną wersję NDK.
JDK 17 17 Więcej informacji znajdziesz w artykule o ustawianiu wersji JDK.

Oto nowe funkcje wtyczki Androida do obsługi Gradle w wersji 8.4.

Wersje poprawek

Poniżej znajdziesz listę wersji poprawek w Android Studio Jellyfish i wtyczce Androida do obsługi Gradle 8.4.

Android Studio Jellyfish | 2023.3.1 Patch 2 i AGP 8.4.2 (czerwiec 2024 r.)

Ważna aktualizacja zabezpieczeń:w luce w zabezpieczeniach wtyczki GitHub dostępnej w Android Studio Iguana | 2023.2.1 i nowszych wersjach może dojść do ujawnienia tokenów dostępu nieupoważnionym osobom.

Rozwiązanie: firma Jetbrains rozwiązała ten problem w produktach platformy IntelliJ, a poprawka jest już dostępna w Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20).

Jeśli masz już kompilację Android Studio na kanale stabilnym, możesz pobrać aktualizację, klikając Pomoc > Sprawdź aktualizacje (lub Android Studio > Sprawdź aktualizacje w systemie macOS). W przeciwnym razie pobierz najnowszą stabilną kompilację.

Jeśli aktywnie korzystasz w IDE z funkcji żądania ściągnięcia w GitHubie, zdecydowanie zalecamy odwołanie wszystkich tokenów GitHub używanych przez wtyczkę. Wtyczka może korzystać z integracji OAuth lub osobistych tokenów dostępu (PAT). Sprawdź obie opcje i w razie potrzeby cofnij uprawnienia:

  • Aby cofnąć dostęp do integracji OAuth, otwórz Aplikacje > Autoryzowane aplikacje OAuth i cofnij dostęp do tokena Integracja IDE JetBrains.
  • Aby cofnąć dostęp dla tokenów PAT, otwórz Osobiste tokeny dostępu i usuń token wydany dla wtyczki GitHub. Domyślna nazwa tokena to IntelliJ IDEA GitHub integration plugin, ale możesz używać niestandardowej nazwy.

Po cofnięciu dostępu tokenów musisz ponownie skonfigurować wtyczkę, aby wszystkie jej funkcje, w tym operacje Git, znów działały.

Przepraszamy za wszelkie niedogodności i zachęcamy wszystkich użytkowników do natychmiastowej aktualizacji, aby chronić swój kod i dane.

Ta niewielka aktualizacja zawiera też poprawki tych błędów.

Android Studio Jellyfish | 2023.3.1 Patch 1 i AGP 8.4.1 (maj 2024 r.)

Ta niewielka aktualizacja zawiera poprawki błędów.

Zmniejszanie rozmiaru klas biblioteki

Od wersji 8.4 wtyczki Androida do obsługi Gradle, jeśli projekt biblioteki Androida jest zminimalizowany, skrócone klasy programu będą publikowane na potrzeby publikowania między projektami. Oznacza to, że jeśli aplikacja jest zależna od zmniejszonej wersji podprojektów biblioteki Androida, plik APK będzie zawierać zmniejszone klasy biblioteki Androida. W przypadku brakujących klas w pliku APK może być konieczne dostosowanie reguł przechowywania biblioteki.

Jeśli tworzysz i publikujesz plik AAR, lokalne pliki JAR, od których zależy Twoja biblioteka, zostaną uwzględnione w pliku AAR bez zmniejszania rozmiaru, co oznacza, że narzędzie do zmniejszania rozmiaru kodu nie będzie na nich działać.

Aby przywrócić poprzednie działanie, ustaw wartość android.disableMinifyLocalDependenciesForLibraries w pliku gradle.propertieszgłoś błąd. W przyszłych wersjach AGP to oznaczenie zostanie usunięte.

Rozwiązane problemy

Wtyczka Androida do obsługi Gradle w wersji 8.4.0

Rozwiązane problemy
Wtyczka Androida do obsługi Gradle
Ulepszono komunikat o błędzie informujący, dlaczego nie można użyć opcji „--release” w przypadku JavaCompile
Wyłącz buforowanie MergeSourceSetFolders za pomocą @DoNotCacheByDefault
Nie można ustawić wersji JaCoCo w AGP 8.2.0
W DynamicFeatureBuildType brakuje isDebuggable
Zminimalizowane klasy biblioteki nie są prawidłowo publikowane na potrzeby użycia w innych projektach
Udostępnianie interfejsu Variant#sources API, który wyklucza wygenerowane pliki
Modele AGP nie zawierają zależności projektu java-platform
ExtractAarTransform tworzy nieodtworzalny plik classes.jar dla plików AAR, które nie mają pliku classes.jar
Zezwalanie na konfigurowanie sourceInformation z ComposeOptions
Nie można znaleźć pola sdk_runtime w wiadomości android.bundle.DeviceSpec
Obsługa compileOnlyApi
R8 nie działa w module biblioteki, gdy przetwarzanie zasobów jest wyłączone
Dodanie możliwości zmiany nazwy artefaktu podczas przekształcania
Dodanie danych wyjściowych zadania do srcDir w sourceSets.androidMain.resources nie powoduje utworzenia zależności zadania
W metodzie AndroidPluginVersion.toString() brakuje zer na początku
Metoda Artifacts.add(FileSystemLocation) powinna być bardziej restrykcyjna.
AGP 8.3.0-alpha11 generuje plik APK wersji, który ulega awarii podczas uruchamiania z błędem android.content.res.Resources$NotFoundException
Zadanie instalacji wtyczki Androida do obsługi Gradle w wersji 8.2.0 kończy się niepowodzeniem w projekcie, który korzysta z dynamicznych funkcji
Kompilacja AIDL kończy się niepowodzeniem z wyjątkiem IndexOutOfBoundsException: Index 0 out of bounds for length 0
Problem z obsługą przyrostowych danych wejściowych w zadaniu MergeJavaResourcesTask
AGP 8.3.0-alpha02 jest zależny od bibliotek ze znanymi lukami w zabezpieczeniach
Wybrany szablon aktywności wymaga projektu z zależnościami androidx.*
Asystent uaktualniania AGP błędnie usuwa z modułu pliki consumerProguardFiles
Asystent uaktualniania AGP wczytuje się w nieskończoność
SourceDirectories#static nie powinien zależeć od zadania GenerateBuildConfig
Podgląd w widoku tworzenia nie może rozpoznać klas z zależności przechodniej
AGP 8.3 przerywa zadanie zipApksFor
Artefakty AndroidX Desktop spakowane w pakiecie APK na Androida
Lint
Klasa GradleModelMocker w platformie testowania Lint nie umożliwia ustawienia wersji biblioteki
Lint K2 UAST: UCallableReferenceExpression zgłasza nieprawidłowy qualifierType
Fałszywie pozytywny wynik lintowania przy użyciu parametru useK2Uast=true z przeciążonymi funkcjami
[BuildTool/Lint] ChecksSdkIntAtLeast constructor property
Integracja z Lint
Lint nie może rozróżnić zależności KMP

Wtyczka Androida do obsługi Gradle w wersji 8.4.1

Rozwiązane problemy
Wtyczka Androida do obsługi Gradle
Zezwalaj na pomijanie ostrzeżenia o wycofaniu w JDK 21 obsługi kierowania na Javę 8
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Błąd konwersji do formatu R8 nowej wersji po zaciemnieniu
Wersje pośrednie mogą nie zawierać pełnych globalnych treści syntetycznych dla elementów zastępczych

Wtyczka Androida do obsługi Gradle w wersji 8.4.2

Rozwiązane problemy
Wtyczka Androida do obsługi Gradle
AGP 8.4 powoduje problemy z pobieraniem GMD w CI