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.

Einheitliche Berichte zu Abdeckung und Tests

Mit AGP 9.2.0-alpha07 werden Aufgaben eingeführt, mit denen HTML-Dashboards generiert werden, in denen Testergebnisse und die Abdeckung verschiedener Testtypen (Unit- und Instrumentierungstests), Module und Build-Varianten zusammengefasst werden. So erhalten Sie eine umfassende Übersicht in einem einzigen Dashboard. Weitere Informationen finden Sie unter Einheitliche Berichte zur Codeabdeckung generieren und Einheitliche Testberichte ansehen.

Änderungen an R8

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

Strengere -keepattributes-Semantik zum Beibehalten von zur Laufzeit unsichtbaren Annotationen

Zur Laufzeit unsichtbare Annotationen können zur Laufzeit nicht gelesen werden. D8 entfernt daher bedingungslos zur Laufzeit unsichtbare Annotationen. Diese Einstellung kann nicht geändert werden.

Für die Kompatibilität mit ProGuard unterstützt R8 die Ausgabe von zur Laufzeit unsichtbaren Annotationen. Beim Kompilieren zu DEX sollten zur Laufzeit unsichtbare Annotationen jedoch im Allgemeinen nie beibehalten werden. Es ist jedoch üblich, die praktische Regel -keepattributes *Annotation* (entweder direkt oder indirekt aus Regeln zum Beibehalten von Consumer-Code) für R8 einzufügen, damit zur Laufzeit sichtbare Annotationen beibehalten werden. Leider werden dadurch auch zur Laufzeit unsichtbare Annotationen beibehalten.

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

Mit keiner der folgenden Regeln werden zur Laufzeit unsichtbare Annotationen beibehalten:

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

Verwenden Sie die folgende Regel, um zur Laufzeit unsichtbare Annotationen beizubehalten:

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

Unterstützung für negierte Namen in Mitgliedsregeln

Die Konfigurationssprache wurde erweitert, sodass Sie jetzt auch nach negierten Mitgliedsnamensmustern suchen können.

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

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

Mitgliedsnamensmuster können auch in der Vorbedingung von -if-Regeln negiert werden. Wenn ein negiertes Mitgliedsnamensmuster Platzhalter enthält, kann in der nachfolgenden -if-Regel nicht auf diese Platzhalter 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

Android-Gradle-Plug-in 9.2.0

Behobene Probleme
Android-Gradle-Plug-in
Warn users if they have commonTest but forget withHostTestBuilder
[fused lib - public] OkHttp includes sources
Cannot run androidDeviceTest with manifest placeholders in library (AGP 9.0.0 with com.android.kotlin.multiplatform.library plugin)
AGP should warn if user has src/androidDeviceTest/java with java disabled
AGP 9.0 No androidComponents.onVariant equivalent for applicationVariants.all.mergeAssetsProvider
`*.xml.flat` files contain absolute file paths
R8D8ThreadPoolBuildService not registered
JdkImageTransform failure with JDK 26
Automatically encode minAgpVersion in the AAR metadata in AGP 10.0
Renaming APK using new AGP DSL
Error when accessing (but not evaluating) bootClasspath IllegalStateException: targetCompatibility is not yet finalized
keepRules sourceset not working for libraries
Embed CC compatibility declaration in AGP
Update Kotlin Gradle plugin dependency to 2.3.10
Allow higher compileSdk for tests than main
Lint
Lint typo in message
Truncated context window in Lint SARIF reports due to stuck offset pointer in `SarifReporter.kt`
Lint Gradle client is missing a critical feature making it unreliable at best
Lint error when resource shrinking is disabled
AGP 9 Lint reports WrongConstant when using nested IntDef constants
Lint error when resource shrinking is disabled
Lint-Integration
Android Lint fails with custom lint checks compiled to Java 21 bytecode
Lint Gradle tasks ignore --quiet flag
Shrinker (R8)
Targeting Java 11 seems to break d8