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 poziom 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 kompilowania 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 Jellyfish w Android Studio i wtyczce Androida do obsługi Gradle w wersji 8.4.

Android Studio Jellyfish | 2023.3.1 wersja 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 nowszej 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 pull request w GitHubu, 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 osobistych tokenów dostępu, otwórz stronę Osobiste tokeny dostępu i usuń token wydany dla wtyczki GitHub. Domyślna nazwa tokena to wtyczka integracji GitHuba w IntelliJ IDEA, 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 na Androida jest zminiaturyzowany, skompresowane klasy programu będą publikowane w ramach publikowania międzyprojektowego. 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, od których zależy 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 Android Gradle
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.
Kompresowane 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
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
Zadaniem instalacji wtyczki Androida do obsługi Gradle w wersji 8.2.0 nie udaje się wykonać 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 programie MergeJavaResourcesTask
AGP 8.3.0-alpha02 zależy od bibliotek z lukami w zabezpieczeniach
Wybrany szablon aktywności wymaga projektu z zależностями androidx.*
AGP Upgrade Assistent błędnie usuwa pliki consumerProguard z modułu
Asystent uaktualniania 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 uwzględnieniem zależności transitive
AGP 8.3 powoduje błąd zipApksFor Task
Elementy AndroidX na komputery 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 pozytywny wynik linta w przypadku useK2Uast=true z przeciążonymi funkcjami
[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 Android Gradle
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 Android Gradle
AGP 8.4 wydaje się powodować problemy z pobieraniem GMD w CI