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

Plug-in Android per Gradle 9.2.0-alpha03

Problemi risolti
Plug-in Android per Gradle
Errore di JdkImageTransform con JDK 26
Codificare automaticamente minAgpVersion nei metadati AAR in AGP 10.0
Lint
Finestra contestuale troncata nei report SARIF di Lint a causa del puntatore di offset bloccato in `SarifReporter.kt`
Il client Gradle di Lint non dispone di una funzionalità fondamentale che lo rende, nella migliore delle ipotesi, inaffidabile
Integrazione di Lint
Le attività Gradle di Lint ignorano il flag --quiet

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
Avvisare gli utenti se hanno commonTest ma dimenticano withHostTestBuilder
[Libreria unita - pubblica] OkHttp include le origini
Impossibile eseguire androidDeviceTest con segnaposto manifest nella libreria (AGP 9.0.0 con plug-in com.android.kotlin.multiplatform.library)
AGP deve avvisare se l'utente ha src/androidDeviceTest/java con Java disattivato
Lint
Errore di battitura di Lint nel messaggio