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ù, consulta la sezione Impostare la versione JDK. |
Report di test e copertura unificati
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 saperne di più, consulta Generare report di copertura del codice unificati e Visualizzare report di test unificati.
Modifiche di 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. D8 rimuove quindi incondizionatamente le annotazioni invisibili in fase di runtime, senza possibilità di modificare questa impostazione.
Per la compatibilità con ProGuard, R8 supporta l'output delle annotazioni invisibili in fase di runtime. Tuttavia, quando si esegue la compilazione in DEX, le annotazioni invisibili in fase di runtime in genere non devono mai essere conservate. Tuttavia, è prassi comune includere la regola pratica -keepattributes *Annotation* (direttamente o indirettamente dalle regole di conservazione del consumatore) per R8 per mantenere le annotazioni visibili in fase di runtime.
Purtroppo, in questo modo vengono mantenute anche le annotazioni invisibili in fase di runtime.
Per attenuare questo problema e corrispondere meglio al comportamento di D8, i pattern -keepattributes con caratteri jolly non corrispondono più a 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à 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 per i nomi negati nelle regole dei membri
Il linguaggio di configurazione è stato esteso in modo che ora tu possa trovare corrispondenze con i pattern di nomi di membri negati.
Ad esempio, per trovare la corrispondenza con tutti i metodi che non terminano con "ForTesting", utilizza la seguente regola:
-keepclassmembers class com.example.MyClass {
*** !*ForTesting(...);
}
I pattern di nomi di membri possono essere negati anche nella precondizione delle regole -if. Se un pattern di nomi di membri negati contiene caratteri jolly, non è possibile fare riferimento a questi caratteri jolly 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 |
|
||
| Lint |
|
||
| 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 |
|
||||
| Lint |
|
||||