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ę Gradle 8.4 to 34. Oto inne informacje o zgodności:

Minimalna wersja Wersja domyślna Uwagi
Gradle 8,6 8,6 Więcej informacji znajdziesz w artykule 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 26.1.10909125 Zainstaluj lub skonfiguruj inną wersję NDK.
JDK 17 17 Więcej informacji znajdziesz w artykule Ustawianie wersji JDK.

Wtyczka Androida do obsługi Gradle w wersji 8.4 zawiera te nowe funkcje:

Wersje poprawek

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

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

Ważna aktualizacja zabezpieczeń: luka w zabezpieczeniachpliku skryptu GitHub dostępnym w Android Studio Iguana 2023.2.1 lub nowszym może powodować ujawnienie tokenów dostępu osobom nieupoważnionym.

Rozwiązanie: firma Jetbrains rozwiązała problem w produktach na platformie IntelliJ. Rozwiązanie jest teraz dostępne w Android Studio Jellyfish | 2023.3.1 poprawka 2 (2023.3.1.20).

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

Jeśli w IDE aktywnie korzystasz z funkcji żądania połączenia z GitHuba, zdecydowanie zalecamy odebranie tokenów GitHuba używanych przez wtyczkę. Ponieważ wtyczka może używać integracji OAuth lub osobistych tokenów dostępu (PAT), sprawdź oba i w razie potrzeby je cofnij:

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

Po cofnięciu dostępu dla 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 błędów.

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

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

Klasy biblioteki są zmniejszone

Od wersji 8.4 wtyczki Androida do obsługi Gradle, jeśli projekt biblioteki Androida jest zminiaturyzowany, skompresowane klasy programu będą publikowane w ramach publikowania między projektami. Oznacza to, że jeśli aplikacja jest zależna od wersji skurczonych podprojektów biblioteki Androida, plik APK będzie zawierał skurczone klasy biblioteki Androida. W przypadku braku klas w pliku APK może być konieczne dostosowanie reguł biblioteki.

Jeśli kompilujesz i publikujesz plik AAR, lokalne pliki JAR, których używa Twoja biblioteka, zostaną uwzględnione w pliku AAR w nieskompresowanej formie, co oznacza, że kompresor kodu nie będzie działał na tych plikach.

Aby przywrócić poprzednie działanie, ustaw opcję 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 8.4.0

Rozwiązane problemy
Wtyczka Gradle na Androida
Poprawiono komunikat o błędzie informujący, dlaczego opcji „–release” nie można używać w przypadku polecenia JavaCompile.
Wyłączanie buforowania MergeSourceSetFolders za pomocą @DoNotCacheByDefault
Nie można ustawić wersji JaCoCo w AGP 8.2.0
W atrybucie DynamicFeatureBuildType brakuje atrybutu isDebuggable
Zminiaturyzowane klasy bibliotek nie są prawidłowo publikowane do użytku w ramach innych projektów
Udostępnia interfejs API Variant#sources, który wyklucza wygenerowane pliki
Modele AGP nie zawierają zależności projektu na platformie Java
ExtractAarTransform tworzy niepowtarzalne pliki classes.jar dla plików aars, 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 przypadku modułu biblioteki, gdy przetwarzanie zasobów jest wyłączone
Dodanie możliwości zmiany nazwy artefaktu podczas przekształcania
Dodanie danych wyjściowych zadania do elementu srcDir w źródłach sourceSets.androidMain.resources nie powoduje utworzenia zależności zadania
W funkcji AndroidPluginVersion.toString() brakuje początkowych zer
Funkcja 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
Niepowodzenie zadania instalacji w wersji 8.2.0 wtyczki Androida do obsługi Gradle w projekcie, który korzysta z funkcji dynamicznych
Kompilacja AIDL kończy się niepowodzeniem z błędem IndexOutOfBoundsException: Index 0 out of bounds for length 0
Problem z obsługą przyrostowych danych wejściowych w programie MergeJavaResourcesTask
AGP 8.3.0-alpha02 zależy od bibliotek z lukami w zabezpieczeniach
Wybrany szablon aktywności wymaga projektu z zależnościami androidx.*
AGP Upgrade Assistent błędnie usuwa pliki consumerProguard z modułu
Asystent uaktualnienia AGP wczytuje się bez końca
SourceDirectories#static nie powinno zależeć od zadania GenerateBuildConfig
Podgląd tworzenia nie może rozwiązać klas z uzależnienia warunkowego
AGP 8.3 powoduje błąd zipApksFor Task
elementy pulpitu AndroidX zapakowane w pakiet APK na Androida.
Lint
Framework testowania Lint GradleModelMocker nie pozwala na ustawienie wersji biblioteki
Lint K2 UAST: UCallableReferenceExpression zgłasza błędny typ kwalifikatora
Fałszywie pozytywna kontrola lint z useK2Uast=true w przypadku przeciążonych funkcji
[BuildTool/Lint] ChecksSdkIntAtLeast constructor property
Integracja z lintem
Lint nie może rozstrzygnąć zależności KMP

Wtyczka Androida do obsługi Gradle 8.4.1

Rozwiązane problemy
Wtyczka Gradle na Androida
Zezwalanie na pomijanie ostrzeżenia o tym, że JDK 21 wycofuje obsługę kierowania na Java 8
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Nowa wersja błędu konwersji formatu R8 po zaciemnieniu
Kompilacje pośrednie mogą nie zawierać pełnej globalnej treści syntetycznej dla stubów

Wtyczka Androida do obsługi Gradle 8.4.2

Rozwiązane problemy
Wtyczka Gradle na Androida
AGP 8.4 wydaje się powodować problemy z pobieraniem GMD w CI