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 36.1. 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 zur Abdeckung und zu 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 Build-Varianten 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.
Änderungen in R8
Die folgenden R8-Änderungen sind in AGP 9.2.0 enthalten.
Strengere -keepattributes-Semantik zum 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.
Für die Kompatibilität mit ProGuard unterstützt R8 die Ausgabe von zur Laufzeit unsichtbaren Annotationen. Beim Kompilieren in DEX sollten zur Laufzeit unsichtbare Anmerkungen 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 einzufügen, damit zur Laufzeit sichtbare Anmerkungen beibehalten werden.
Leider werden dadurch auch Laufzeit-Annotations beibehalten.
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 Muster für negierte Mitgliedsnamen abgleichen 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.0-alpha04
| Behobene Probleme | |||
|---|---|---|---|
| Android-Gradle-Plug-in |
|
||
Android-Gradle-Plug-in 9.2.0-alpha03
| Behobene Probleme | |||
|---|---|---|---|
| Android-Gradle-Plug-in |
|
||
| Lint |
|
||
| Lint-Integration |
|
||
Android-Gradle-Plug-in 9.2.0-alpha02
| Behobene Probleme | ||||
|---|---|---|---|---|
| Android-Gradle-Plug-in |
|
|||
| Lint-Integration |
|
|||
Android-Gradle-Plug-in 9.2.0-alpha01
| Behobene Probleme | |||||
|---|---|---|---|---|---|
| Android-Gradle-Plug-in |
|
||||
| Lint |
|
||||