Plug-in Android per Gradle 9.2.0 (aprile 2026)

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
Rinomina dell'APK utilizzando il nuovo DSL AGP
Errore durante l'accesso (ma non la valutazione) a bootClasspath IllegalStateException: targetCompatibility is not yet finalized

Plug-in Android per Gradle 9.2.0-alpha03

Problemi risolti
Plug-in Android per Gradle
Errore JdkImageTransform con JDK 26
Codifica automaticamente minAgpVersion nei metadati AAR in AGP 10.0
Pelucchi
Finestra contestuale troncata nei report Lint SARIF a causa del puntatore di offset bloccato in `SarifReporter.kt`
Il client Gradle Lint non dispone di una funzionalità fondamentale che lo rende inaffidabile
Integrazione di Lint
Lint Gradle tasks ignore --quiet flag

Plug-in Android per Gradle 9.2.0-alpha02

Problemi risolti
Plug-in Android per Gradle
AGP 9.0 Nessun equivalente di androidComponents.onVariant per applicationVariants.all.mergeAssetsProvider
I file `*.xml.flat` contengono percorsi file assoluti
R8D8ThreadPoolBuildService non registrato
Integrazione di Lint
Android Lint non riesce a eseguire i controlli Lint personalizzati compilati nel bytecode Java 21

Plug-in Android per Gradle 9.2.0-alpha01

Problemi risolti
Plug-in Android per Gradle
Avvisa gli utenti se hanno commonTest ma dimenticano withHostTestBuilder
[fused lib - public] OkHttp includes sources
Impossibile eseguire androidDeviceTest con i segnaposto del manifest nella libreria (AGP 9.0.0 con il plug-in com.android.kotlin.multiplatform.library)
AGP deve avvisare se l'utente ha src/androidDeviceTest/java con Java disattivato
Pelucchi
Lint typo in message