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 maximale API-Level, das vom Android-Gradle-Plugin 8.4 unterstützt wird, ist 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 sind folgende neue Funktionen verfügbar.

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, das in Android Studio Iguana | 2023.2.1 und höher verfügbar ist, könnte dazu führen, dass Zugriffstokens für unbefugte Dritte offengelegt werden.

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

Wenn Sie bereits einen Android Studio-Build im stabilen Channel haben, können Sie das Update abrufen, indem Sie auf Hilfe > Auf Updates prüfen (oder unter macOS auf Android Studio > Auf Updates prüfen) klicken. Andernfalls laden Sie den neuesten stabilen Build herunter.

Wenn Sie die GitHub-Pull-Anfrage-Funktion in der IDE aktiv verwendet haben, empfehlen wir dringend, alle vom Plug-in verwendeten GitHub-Tokens zu widerrufen. Da das Plug-in die OAuth-Integration oder persönliche Zugriffstokens (Personal Access Tokens, PATs) verwenden kann, prüfen Sie bitte beide und heben Sie sie bei Bedarf auf:

  • 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 persönliche Zugriffstokens widerrufen möchten, rufen Sie Persönliche Zugriffstokens auf und löschen Sie das für das GitHub-Plug-in ausgestellte Token. Der Standardtokenname ist IntelliJ IDEA GitHub-Integrations-Plug-in, aber Sie verwenden möglicherweise einen benutzerdefinierten Namen.

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

Wir entschuldigen uns für etwaige Unannehmlichkeiten und bitten alle Nutzer, ihre Software sofort zu aktualisieren, um ihren Code und ihre Daten zu schützen.

Dieses kleinere Update enthält auch 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

Ab Android-Gradle-Plug-in 8.4 werden bei der Verkleinerung eines Android-Bibliotheksprojekts verkleinerte Programmklassen für die projektübergreifende Veröffentlichung veröffentlicht. Wenn eine App von der verkleinerten Version der Android-Bibliotheksunterprojekte abhängt, enthält das APK also verkleinerte Android-Bibliotheksklassen. Möglicherweise müssen Sie die Regeln zum Beibehalten von Bibliotheken anpassen, wenn im APK Klassen fehlen.

Wenn Sie ein AAR erstellen und veröffentlichen, werden lokale JARs, von denen Ihre Bibliothek abhängt, ohne Shrinking in das AAR aufgenommen. Das bedeutet, dass der Code-Shrinker nicht für sie ausgeführt wird.

Wenn Sie zum vorherigen Verhalten zurückkehren möchten, legen Sie android.disableMinifyLocalDependenciesForLibraries in der Datei gradle.properties fest 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-Plug-in
Fehlermeldung dafür, warum die Option „--release“ nicht für „JavaCompile“ verwendet werden kann, wurde verbessert
Caching von MergeSourceSetFolders mit @DoNotCacheByDefault deaktivieren
JaCoCo-Version in AGP 8.2.0 kann nicht festgelegt werden
Für DynamicFeatureBuildType fehlt isDebuggable
Minifizierte Bibliotheksklassen werden nicht korrekt für die Verwendung in anderen Projekten veröffentlicht
API „Variant#sources“ bereitstellen, die generierte Dateien ausschließt
AGP-Modelle enthalten keine Projektabhängigkeiten vom Typ „java-platform“.
ExtractAarTransform erstellt nicht reproduzierbare „classes.jar“-Dateien für AARs ohne „classes.jar“-Datei.
Konfiguration 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 hinzugefügt, den Artefaktnamen während der Transformation zu ändern
Wenn Sie die Aufgabenausgabe als „srcDir“ von „sourceSets.androidMain.resources“ hinzufügen, werden keine Aufgabenabhängigkeiten erstellt.
Bei AndroidPluginVersion.toString() fehlen vorangestellte Nullen
„Artifacts.add(FileSystemLocation)“ sollte restriktiver sein.
Mit AGP 8.3.0-alpha11 erstellte Release-APKs stürzen beim Start mit „android.content.res.Resources$NotFoundException“ ab.
Installationsaufgabe für Android-Gradle-Plug-in 8.2.0 schlägt in Projekten mit dynamischen Modulen fehl
AIDL-Kompilierung schlägt mit „IndexOutOfBoundsException: Index 0 out of bounds for length 0“ fehl
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 Aktivitätsvorlage ist ein Projekt mit androidx.*-Abhängigkeiten erforderlich.
AGP Upgrade Assistant entfernt consumerProguardFiles fälschlicherweise aus dem Modul
AGP Upgrade Assistant wird unendlich lange geladen
SourceDirectories#static sollte nicht von der Aufgabe „GenerateBuildConfig“ abhängen
Compose-Vorschau kann Klassen aus transitiver Abhängigkeit nicht auflösen
AGP 8.3 unterbricht die zipApksFor-Aufgabe
AndroidX-Desktop-Artefakte in Android-APK verpackt
Lint
Mit GradleModelMocker des Lint-Testframeworks kann die Bibliotheksversion nicht festgelegt werden
Lint K2 UAST: UCallableReferenceExpression meldet falschen qualifierType
Falsch positives Lint-Ergebnis bei Verwendung von „useK2Uast=true“ mit überladenen Funktionen
[BuildTool/Lint] ChecksSdkIntAtLeast-Konstruktoreigenschaft
Lint-Integration
Lint kann eine KMP-Abhängigkeit nicht eindeutig zuordnen

Android-Gradle-Plug-in 8.4.1

Behobene Probleme
Android-Gradle-Plug-in
Unterdrücken einer Warnung, dass JDK 21 die Unterstützung für das Targeting von Java 8 einstellt
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Fehler bei der Formatkonvertierung in der neuen Version R8 nach der Verschleierung
Bei Zwischen-Builds sind möglicherweise nicht alle globalen synthetischen Inhalte für Stubs verfügbar.

Android-Gradle-Plug-in 8.4.2

Behobene Probleme
Android-Gradle-Plug-in
AGP 8.4 scheint GMD-Downloads in der CI zu unterbrechen