Android-Gradle-Plug-in 9.2.0 (April 2026)

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

Kompatibilität

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

Mindestversion Standardversion Hinweise
Gradle 9.4.1 9.4.1 Weitere Informationen finden Sie unter Gradle aktualisieren.
SDK-Build-Tools 36.0.0 36.0.0 Installieren oder konfigurieren Sie die SDK-Build-Tools.
NDK – 28.2.13676358 Installieren Sie oder konfigurieren Sie eine andere Version des NDK.
JDK 17 17 Weitere Informationen finden Sie unter JDK-Version festlegen.
Kotlin-Gradle-Plug-in (KGP) 2.2.10 2.2.10 Weitere Informationen finden Sie unter Laufzeitabhängigkeit vom Kotlin-Gradle-Plug-in.

Einheitliche Berichte zu Abdeckung und Tests

In AGP 9.2.0-alpha07 werden Aufgaben zum Generieren von HTML-Dashboards eingeführt, in denen Testergebnisse und ‑abdeckung aus verschiedenen Testtypen (Unit- und Instrumentierungstests), Modulen und Buildvarianten zusammengefasst werden. So erhalten Sie einen umfassenden Überblick in einem einzigen Dashboard. Weitere Informationen finden Sie unter Einheitliche Berichte zur Codeabdeckung erstellen und Einheitliche Testberichte ansehen.

R8-Änderungen

Die folgenden R8-Änderungen sind in AGP 9.2.0 enthalten.

Strengere -keepattributes-Semantik für das Beibehalten von zur Laufzeit unsichtbaren Anmerkungen

Zur Laufzeit unsichtbare Anmerkungen können zur Laufzeit nicht gelesen werden. D8 entfernt daher bedingungslos Laufzeit-unsichtbare Anmerkungen. Es gibt keine Möglichkeit, dies zu ändern.

Zur Kompatibilität mit ProGuard unterstützt R8 die Ausgabe von Annotationen, die zur Laufzeit nicht sichtbar sind. Beim Kompilieren in DEX sollten zur Laufzeit unsichtbare Annotationen jedoch in der Regel nicht beibehalten werden. Es ist jedoch üblich, die praktische Regel -keepattributes *Annotation* (entweder direkt oder indirekt über Regeln zum Beibehalten von Verbrauchern) für R8 einzuschließen, um zur Laufzeit sichtbare Anmerkungen beizubehalten. Leider werden dadurch auch Laufzeit-Annotationen ausgeblendet.

Um dieses Problem zu beheben und das Verhalten von D8 besser abzubilden, stimmen -keepattributes-Muster mit Platzhaltern nicht mehr mit RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations und RuntimeInvisibleTypeAnnotations überein. Laufzeit-unsichtbare Anmerkungen werden daher nur beibehalten, wenn der Attributname explizit ohne Platzhalter angegeben wird.

Keine der folgenden Regeln behält jetzt zur Laufzeit unsichtbare Anmerkungen bei:

-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*

Verwenden Sie die folgende Regel, um Annotationen zur Laufzeit unsichtbar zu halten:

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

Unterstützung negierter Namen in Mitgliedsregeln

Die Konfigurationssprache wurde erweitert, sodass Sie jetzt auch nach negierten Mustern für Mitgliedsnamen suchen können.

Wenn Sie beispielsweise alle Methoden abgleichen möchten, die nicht mit „ForTesting“ enden, verwenden Sie die folgende Regel:

-keepclassmembers class com.example.MyClass {
  *** !*ForTesting(...);
}

Mitgliedernamenmuster können auch in der Vorbedingung von -if-Regeln negiert werden. Wenn ein negiertes Mitgliedsnamensmuster Platzhalter enthält, kann in der -if-Folgeregel nicht darauf verwiesen werden.

Behobene Probleme

Android-Gradle-Plug-in 9.2.1

Behobene Probleme
Android-Gradle-Plug-in
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0 (java.lang.ClassNotFoundException: Klasse „com.android.tools.r8.RecordTag“ nach dem Upgrade von Gradle auf Version 9.2.0 nicht gefunden)

Android-Gradle-Plug-in 9.2.0

Behobene Probleme
Android-Gradle-Plug-in
Nutzer werden gewarnt, wenn sie „commonTest“ verwenden, aber „withHostTestBuilder“ vergessen.
[fused lib - public] OkHttp includes sources
„androidDeviceTest“ kann nicht mit Manifest-Platzhaltern in der Bibliothek ausgeführt werden (AGP 9.0.0 mit dem Plugin „com.android.kotlin.multiplatform.library“)
AGP sollte warnen, wenn der Nutzer „src/androidDeviceTest/java“ mit deaktiviertem Java hat.
AGP 9.0: Kein androidComponents.onVariant-Äquivalent für applicationVariants.all.mergeAssetsProvider
`*.xml.flat`-Dateien enthalten absolute Dateipfade
R8D8ThreadPoolBuildService nicht registriert
Fehler bei JdkImageTransform mit JDK 26
Automatische Codierung von „minAgpVersion“ in den AAR-Metadaten in AGP 10.0
APK mit neuer AGP-DSL umbenennen
Fehler beim Zugriff auf (aber nicht bei der Auswertung von) bootClasspath IllegalStateException: targetCompatibility is not yet finalized
„keepRules“-Quellset funktioniert nicht für Bibliotheken
CC-Kompatibilitätserklärung in AGP einbetten
Kotlin-Gradle-Plug-in-Abhängigkeit auf 2.3.10 aktualisieren
Höhere compileSdk-Version für Tests als für die Haupt-App zulassen
Lint
Rechtschreibfehler in Nachricht korrigieren
Abgeschnittenes Kontextfenster in Lint-SARIF-Berichten aufgrund eines hängengebliebenen Offset-Zeigers in `SarifReporter.kt`
Dem Lint-Gradle-Client fehlt eine wichtige Funktion, was ihn bestenfalls unzuverlässig macht
Lint-Fehler, wenn die Ressourcenverkleinerung deaktiviert ist
AGP 9 Lint meldet „WrongConstant“ bei Verwendung verschachtelter IntDef-Konstanten
Lint-Fehler, wenn die Ressourcenverkleinerung deaktiviert ist
Lint-Integration
Android Lint schlägt fehl, wenn benutzerdefinierte Lint-Prüfungen in Java 21-Bytecode kompiliert werden
Lint-Gradle-Aufgaben ignorieren das Flag „--quiet“
Shrinker (R8)
Die Ausrichtung auf Java 11 scheint d8 zu beschädigen