Il plug-in Android per Gradle 9.2 è una release secondaria che include una serie di nuove funzionalità e miglioramenti.
Compatibilità
Il livello API massimo supportato dal plug-in Android per Gradle 9.2 è il livello API 36.1. Ecco altre informazioni sulla compatibilità:
| Versione minima | Versione predefinita | Note | |
|---|---|---|---|
| Gradle | 9.4.1 | 9.4.1 | Per saperne di più, consulta la sezione Aggiornare Gradle. |
| Strumenti di build dell'SDK | 36.0.0 | 36.0.0 | Installa o configura gli strumenti di compilazione dell'SDK. |
| NDK | N/D | 28.2.13676358 | Installa o configura una versione diversa dell'NDK. |
| JDK | 17 | 17 | Per saperne di più, vedi Impostare la versione di JDK. |
Report unificati su copertura e test
AGP 9.2.0-alpha07 introduce attività per generare dashboard HTML che consolidano i risultati dei test e la copertura di vari tipi di test (unità e strumentazione), moduli e varianti di build, fornendo una panoramica completa in un'unica dashboard. Per ulteriori informazioni, consulta Generare report unificati sulla copertura del codice e Visualizzare report di test unificati.
Modifiche R8
Le seguenti modifiche di R8 sono incluse in AGP 9.2.0.
Semantica -keepattributes più rigorosa per mantenere le annotazioni invisibili in fase di runtime
Le annotazioni invisibili in fase di runtime non possono essere lette in fase di runtime. Pertanto, D8 rimuove in modo incondizionato le annotazioni invisibili in fase di runtime, senza possibilità di modificare questa impostazione.
Per la compatibilità con ProGuard, R8 supporta l'output di annotazioni invisibili
in fase di runtime. Tuttavia, durante la compilazione in DEX, le annotazioni invisibili in fase di runtime
non devono mai essere conservate. Tuttavia, è prassi comune includere la
regola conveniente -keepattributes *Annotation* (direttamente o indirettamente
dalle regole di conservazione dei consumatori) per R8 per mantenere visibili le annotazioni di runtime.
Purtroppo, in questo modo vengono mantenute anche le annotazioni invisibili in fase di runtime.
Per risolvere questo problema e corrispondere meglio al comportamento di D8, i pattern con caratteri jolly non corrispondono più a -keepattributes, RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations e RuntimeInvisibleTypeAnnotations.
Di conseguenza, le annotazioni invisibili in fase di runtime verranno mantenute solo se il nome dell'attributo viene menzionato esplicitamente senza caratteri jolly.
Nessuna delle seguenti regole manterrà ora le annotazioni invisibili in fase di runtime:
-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*
Per mantenere le annotazioni invisibili in fase di runtime, utilizza la seguente regola:
-keepattributes RuntimeInvisibleAnnotations,
RuntimeInvisibleParameterAnnotations,
RuntimeInvisibleTypeAnnotations
Supporto dei nomi negati nelle regole dei membri
Il linguaggio di configurazione è stato esteso in modo da poter ora corrispondere a pattern di nomi di membri negati.
Ad esempio, per trovare corrispondenze con tutti i metodi che non terminano con "ForTesting", utilizza la seguente regola:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
I pattern dei nomi dei membri possono essere negati anche nella precondizione delle regole -if. Se un pattern di nome membro negato contiene caratteri jolly, questi non possono essere referenziati a ritroso nella regola conseguente -if.
Problemi risolti
Plug-in Android per Gradle 9.2.0-alpha04
| Problemi risolti | |||
|---|---|---|---|
| Plug-in Android per Gradle |
|
||
Plug-in Android per Gradle 9.2.0-alpha03
| Problemi risolti | |||
|---|---|---|---|
| Plug-in Android per Gradle |
|
||
| Pelucchi |
|
||
| Integrazione di Lint |
|
||
Plug-in Android per Gradle 9.2.0-alpha02
| Problemi risolti | ||||
|---|---|---|---|---|
| Plug-in Android per Gradle |
|
|||
| Integrazione di Lint |
|
|||
Plug-in Android per Gradle 9.2.0-alpha01
| Problemi risolti | |||||
|---|---|---|---|---|---|
| Plug-in Android per Gradle |
|
||||
| Pelucchi |
|
||||