Android-Gradle-Plug-in 8.4.0 (April 2024)

Das Android Gradle-Plug-in 8.4.0 ist eine Hauptversion mit einer Vielzahl neuer Funktionen und Verbesserungen.

Kompatibilität

Das Android Gradle-Plug-in 8.4 unterstützt maximal API-Level 34. Weitere Informationen zur Kompatibilität:

Mindestversion Standardversio Hinweise
Gradle 8.6 8.6 Weitere Informationen finden Sie unter Gradle aktualisieren.
SDK-Build-Tools 34.0.0 34.0.0 Installieren oder konfigurieren Sie die SDK-Build-Tools.
NDK 26.1.10909125 Installieren oder konfigurieren Sie eine andere Version des NDK.
JDK 17 17 Weitere Informationen finden Sie unter JDK-Version festlegen.

Im Android-Gradle-Plug-in 8.4 gibt es folgende neue Funktionen:

Patch-Releases

Im Folgenden finden Sie eine Liste der Patch-Releases in Android Studio Jellyfish und im Android Gradle-Plug-in 8.4.

Android Studio Jellyfish | 2023.3.1 Patch 2 und AGP 8.4.2 (Juni 2024)

Wichtiges Sicherheitsupdate:Eine Sicherheitslücke im GitHub-Plug-in in Android Studio Iguana 2023.2.1 und höher kann dazu führen, dass Zugriffstokens an unbefugte Dritte weitergegeben werden.

Problemlösung:Jetbrains hat das Problem in IntelliJ-Plattformprodukten behoben. Die Lösung ist jetzt in Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20) verfügbar.

Wenn Sie bereits einen Android Studio-Build aus dem stabilen Kanal haben, können Sie das Update abrufen, indem Sie auf Hilfe > Nach Updates suchen (oder unter macOS auf Android Studio > Nach Updates suchen) klicken. Andernfalls laden Sie die neueste stabile Version herunter.

Wenn Sie die GitHub-Pull-Anfragefunktion in der IDE aktiv verwendet haben, sollten Sie außerdem alle GitHub-Tokens widerrufen, die vom Plug-in verwendet werden. Da das Plug-in OAuth-Integration oder persönliche Zugriffstokens (Personal Access Tokens, PATs) verwenden kann, prüfen Sie beides und widerrufen Sie sie bei Bedarf:

  • Wenn Sie den Zugriff für die OAuth-Integration widerrufen möchten, rufen Sie Anwendungen > Autorisierte OAuth-Apps auf und widerrufen Sie den Zugriff für das Token JetBrains IDE Integration.
  • Wenn Sie den Zugriff für PATs widerrufen möchten, rufen Sie Persönliche Zugriffstokens auf und löschen Sie das für das GitHub-Plug-in ausgestellte Token. Der Standardtokenname lautet IntelliJ IDEA GitHub-Integrations-Plug-in. Möglicherweise verwenden Sie aber einen benutzerdefinierten Namen.

Nachdem Sie den Zugriff für das bzw. die Token widerrufen haben, müssen Sie das Plug-in neu einrichten, damit alle Plug-in-Funktionen, einschließlich Git-Vorgänge, wieder funktionieren.

Wir entschuldigen uns für etwaige Unannehmlichkeiten und empfehlen allen Nutzern, das Update sofort durchzuführen, um ihren Code und ihre Daten zu schützen.

Dieses kleinere Update enthält außerdem diese Fehlerkorrekturen.

Android Studio Jellyfish | 2023.3.1 Patch 1 und AGP 8.4.1 (Mai 2024)

Dieses kleinere Update enthält diese Fehlerkorrekturen.

Bibliotheksklassen werden verkleinert

Wenn ein Android-Bibliotheksprojekt ab Android Gradle Plugin 8.4 minimiert wird, werden verkleinerte Programmklassen für die Veröffentlichung zwischen Projekten veröffentlicht. Wenn eine App also von der verkleinerten Version der Android-Bibliotheks-Unterprojekte abhängt, enthält das APK verkleinerte Android-Bibliotheksklassen. Möglicherweise müssen Sie die Regeln für die Bibliotheksspeicherung anpassen, falls im APK Klassen fehlen.

Wenn Sie eine AAR erstellen und veröffentlichen, werden lokale JAR-Dateien, von denen Ihre Bibliothek abhängt, unverkleinert in die AAR aufgenommen. Das bedeutet, dass der Code-Schrumpfer nicht auf ihnen ausgeführt wird.

Wenn Sie zum vorherigen Verhalten zurückkehren möchten, setzen Sie android.disableMinifyLocalDependenciesForLibraries in der Datei gradle.properties und melden Sie einen Fehler. In zukünftigen Versionen von AGP wird dieses Flag entfernt.

Behobene Probleme

Android Gradle-Plug-in 8.4.0

Behobene Probleme
Android Gradle Plugin
Verbesserte Fehlermeldung, warum die Option „–release“ für JavaCompile nicht verwendet werden kann
Caching von MergeSourceSetFolders mit @DoNotCacheByDefault deaktivieren
JaCoCo-Version kann in AGP 8.2.0 nicht festgelegt werden
Bei DynamicFeatureBuildType fehlt isDebuggable
Minimierte Bibliotheksklassen werden nicht richtig für die interprojektübergreifende Verwendung veröffentlicht
Variant#sources API bereitstellen, die generierte Dateien ausschließt
AGP-Modelle enthalten keine Java-Plattformprojektabhängigkeiten.
ExtractAarTransform erstellt nicht reproduzierbare classes.jar-Dateien für AAR-Dateien ohne classes.jar-Dateien
Konfigurieren von „sourceInformation“ über „ComposeOptions“ zulassen
Feld „sdk_runtime“ in der Nachricht „android.bundle.DeviceSpec“ nicht gefunden
Unterstützung für compileOnlyApi
R8 schlägt bei einem Bibliotheksmodul fehl, wenn die Ressourcenverarbeitung deaktiviert ist
Möglichkeit zum Ändern des Artefaktnamens während der Transformation hinzugefügt
Durch das Hinzufügen der Aufgabenausgabe als srcDir von sourceSets.androidMain.resources werden keine Aufgabenabhängigkeiten erstellt
AndroidPluginVersion.toString() enthält keine vorangestellten Nullen
Artifacts.add(FileSystemLocation) sollte restriktiver sein.
AGP 8.3.0-alpha11 erzeugt ein Release-APK, das beim Starten mit android.content.res.Resources$NotFoundException abstürzt
Installationsaufgabe des Android Gradle-Plug-ins 8.2.0 in einem Projekt mit dynamischen Funktionen schlägt fehl
AIDL-Kompilierung schlägt mit IndexOutOfBoundsException fehl: Index 0 liegt außerhalb des zulässigen Bereichs für Länge 0
Problem bei der Verarbeitung inkrementeller Eingaben für MergeJavaResourcesTask
AGP 8.3.0-alpha02 hängt von Bibliotheken mit bekannten Sicherheitslücken ab
Für die ausgewählte Vorlage für Aktivitäten ist ein Projekt mit androidx.*-Abhängigkeiten erforderlich
AGP Upgrade Assistant entfernt fälschlicherweise consumerProguardFiles aus dem Modul
AGP Upgrade Assistant lädt unendlich
SourceDirectories#static sollte nicht von der Aufgabe „GenerateBuildConfig“ abhängen
In der Vorschau für die Zusammenstellung können Klassen aus einer übergeordneten Abhängigkeit nicht aufgelöst werden
AGP 8.3 bricht die Aufgabe „zipApksFor“ ab
AndroidX-Desktop-Artefakte, die in einem Android-APK verpackt sind
Fussel
Der GradleModelMocker des Lint-Test-Frameworks lässt die Bibliotheksversion nicht festlegen
Lint K2 UAST: UCallableReferenceExpression meldet falschen qualifierType
Falsch positives Lint-Ergebnis mit „useK2Uast=true“ bei überladenen Funktionen
[BuildTool/Lint] ChecksSdkIntAtLeast-Konstruktoreigenschaft
Lint-Integration
Lint kann eine KMP-Abhängigkeit nicht eindeutig identifizieren

Android Gradle-Plug-in 8.4.1

Behobene Probleme
Android Gradle Plugin
Unterdrücken der Warnung, dass in JDK 21 die Unterstützung für das Targeting auf Java 8 eingestellt wird
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Fehler bei der Konvertierung in das neue R8-Format nach der Verschleierung
Zwischen-Builds enthalten möglicherweise keine vollständigen globalen synthetischen Inhalte für Stubs.

Android Gradle Plugin 8.4.2

Behobene Probleme
Android Gradle Plugin
AGP 8.4 scheint GMD-Downloads in CI zu beeinträchtigen