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

Das Android-Gradle-Plug-in 8.4.0 ist ein wichtiger Release, der eine Vielzahl neuer Funktionen und Verbesserungen enthält.

Kompatibilität

Das maximale API-Level, das vom Android-Gradle-Plug-in 8.4 unterstützt wird, ist API-Level 34. Weitere Informationen zur Kompatibilität:

Mindestversion Standardversion 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 Sie oder konfigurieren Sie eine andere Version des NDK.
JDK 17 17 Weitere Informationen finden Sie unter JDK-Version festlegen.

Die folgenden Funktionen sind neu im Android-Gradle-Plug-in 8.4.

Patch releases

Im Folgenden finden Sie eine Liste der Patchreleases in Android Studio Jellyfish und 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, und 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 im 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 den neuesten stabilen Build herunter.

Wenn Sie die GitHub-Pull-Anfragefunktion in der IDE aktiv verwendet haben, empfehlen wir dringend, alle GitHub-Tokens zu widerrufen, die vom Plug-in verwendet werden. Da das Plug-in die OAuth-Integration oder persönliche Zugriffstokens (PATs) verwenden kann, prüfen Sie beides und widerrufen Sie den Zugriff 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 JetBrains IDE Integration Token.
  • 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 Standardname des Tokens ist IntelliJ IDEA GitHub integration plugin. Möglicherweise verwenden Sie aber einen benutzerdefinierten Namen.

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

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

Dieses kleinere Update enthält auch die folgenden Fehlerkorrekturen.

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

Dieses kleinere Update enthält die folgenden Fehlerkorrekturen.

Bibliotheksklassen werden verkleinert

Ab dem 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-Bibliotheksprojekte abhängt, enthält das APK also verkleinerte Android-Bibliotheksklassen. Möglicherweise müssen Sie die Regeln für die Beibehaltung von Bibliotheken anpassen, falls im APK Klassen fehlen.

Wenn Sie ein AAR erstellen und veröffentlichen, werden lokale JAR-Dateien, von denen Ihre Bibliothek abhängt, unverkleinert in das AAR aufgenommen. Das bedeutet, dass der Code-Shrinker nicht auf sie angewendet wird.

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

Behobene Probleme

Android-Gradle-Plug-in 8.4.2

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

Android-Gradle-Plug-in 8.4.1

Behobene Probleme
Android-Gradle-Plug-in
Unterdrückung einer Warnung zulassen, dass JDK 21 die Unterstützung für Java 8 einstellt
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Fehler bei der R8-Formatkonvertierung nach der Verschleierung
Zwischen-Builds haben möglicherweise keine vollständigen globalen synthetischen Inhalte für Stubs

Android-Gradle-Plug-in 8.4.0

Behobene Probleme
Android-Gradle-Plug-in
Fehlermeldung verbessern, die angibt, 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
In DynamicFeatureBuildType fehlt isDebuggable
Verkleinerte Bibliotheksklassen werden nicht korrekt für die projektübergreifende Verwendung veröffentlicht
API für Variant#sources bereitstellen, die generierte Dateien ausschließt
AGP-Modelle enthalten keine Java-Plattform-Projektabhängigkeiten
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 hinzufügen, den Artefaktnamen während der Transformation zu ändern
Wenn die Taskausgabe als srcDir von sourceSets.androidMain.resources hinzugefügt wird, werden keine Taskabhängigkeiten erstellt
In AndroidPluginVersion.toString() fehlen führende Nullen
Artifacts.add(FileSystemLocation) sollte restriktiver sein.
AGP 8.3.0-alpha11 erstellt ein Release-APK, das beim Start mit android.content.res.Resources$NotFoundException abstürzt
Die Installations-Task für das Android-Gradle-Plug-in 8.2.0 schlägt in Projekten mit dynamischen Funktionen fehl
AIDL-Kompilierung schlägt mit IndexOutOfBoundsException fehl: Index 0 out of bounds for length 0
Problem mit der inkrementellen Eingabe 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
Der AGP-Upgrade-Assistent entfernt consumerProguardFiles fälschlicherweise aus dem Modul
Der AGP-Upgrade-Assistent wird unendlich geladen
SourceDirectories#static sollte nicht von der Task GenerateBuildConfig abhängen
Die Compose-Vorschau kann Klassen aus der transitiven Abhängigkeit nicht auflösen
AGP 8.3 unterbricht die Task zipApksFor
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 Ergebnis bei Lint mit useK2Uast=true mit überladenen Funktionen
[BuildTool/Lint] ChecksSdkIntAtLeast-Konstruktoreigenschaft
Lint-Integration
Lint kann eine KMP-Abhängigkeit nicht disambiguieren