Plug-in Android per Gradle 9.3.0 (luglio 2026)

Il plug-in Android per Gradle 9.3 è 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.3 è il livello API 37. Ecco altre informazioni sulla compatibilità:

Versione minima Versione predefinita Note
Gradle 9.5.0 9.5.0 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 di JDK.

Attività Gradle di R8 Configuration Analyzer autonoma

Il plug-in Android per Gradle 9.3 introduce un'attività Gradle dedicata per l'esecuzione isolata di R8 Configuration Analyzer. R8 Configuration Analyzer ti aiuta a ottimizzare le regole di riduzione del codice e offuscamento della tua app.

./gradlew :app:analyzeReleaseR8Config

L'attività :app:analyzeReleaseR8Config genera il report senza completare la pipeline di compilazione di APK o bundle. Ciò fornisce un ciclo di feedback più breve, che accelera l'iterazione dello sviluppatore durante la definizione delle regole di conservazione. In alternativa, puoi generare il report automaticamente eseguendo una build di release R8 (ad esempio assembleRelease o bundleRelease).

Per saperne di più, consulta Esegui l'attività Gradle autonoma per generare il report.

Problemi risolti

Plug-in Android per Gradle 9.3.3

Problemi risolti
Plug-in Android per Gradle
Il nuovo DSL di ottimizzazione { enable = true } di AGP 9.3.0 non imposta isMinifyEnabled nell'oggetto ApplicationVariant
Dexer (D8)
D8 9.2.14 è circa il 38% più lento di 8.13.6 in `mergeProjectDexDebug` su input/output identici
Shrinker (R8)
Modalità di debug D8: ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 31 (Index -1 non compreso nell'intervallo per la lunghezza 31) - regressione tra R8 8.8.34 e 8.9.27
VerifyError: Outliner estende in modo errato la regione try-catch, causando la registrazione non inizializzata
R8 scrive il file `.kotlin_module` con ":" nel nome, producendo un nome file non valido su Windows
Non determinismo della build R8: input identico produce dex/mapping diversi (regressione da "Retain Assume instructions in LIR")
Mappatura duplicata con R8 9.1
AGP produce a intermittenza file dex che non superano la verifica e causano l'arresto anomalo dell'app all'avvio
NullPointerException: Cannot invoke Position.getOutermostCaller() because entryPosition is null
Elevato consumo di memoria per regola
R8: VerifyError su Android 4.4

Plug-in Android per Gradle 9.3.2

Problemi risolti
Pelucchi
AGP 9.3 lint si arresta in modo anomalo su JDK 17 - NoSuchMethodError: java.util.List.removeLast() in intellij-core JavaDocParser in bundle

Plug-in Android per Gradle 9.3.1

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.1

Plug-in Android per Gradle 9.3.0-rc02

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0-rc02

Plug-in Android per Gradle 9.3.0-rc01

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0-rc01

Plug-in Android per Gradle 9.3.0-alpha12

Problemi risolti
Plug-in Android per Gradle
Errore di compilazione: la perdita di handle di file in classes.jar in compile_library_classes_jar impedisce le ricompilazioni su Windows fino al riavvio dell'IDE
Pelucchi
Lint considera la libreria Java importata come progetto Android, ignorando la versione dell'SDK di compilazione

Plug-in Android per Gradle 9.3.0-alpha11

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0-alpha11

Plug-in Android per Gradle 9.3.0-alpha10

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0-alpha10

Plug-in Android per Gradle 9.3.0-alpha09

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0-alpha09

Plug-in Android per Gradle 9.3.0-alpha08

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0-alpha08

Plug-in Android per Gradle 9.3.0-alpha07

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0-alpha07

Plug-in Android per Gradle 9.3.0-alpha06

Problemi risolti
Plug-in Android per Gradle
JavaDocGenerationTask deve utilizzare i worker

Plug-in Android per Gradle 9.3.0-alpha05

Problemi risolti
Shrinker (R8)
Mapping dell'offuscamento L8 non incluso in app mapping.txt

Plug-in Android per Gradle 9.3.0-alpha04

Problemi risolti
Plug-in Android per Gradle
Il set di risorse keepRules di KMP viene ignorato senza it.consumerKeepRules.publish = true

Plug-in Android per Gradle 9.3.0-alpha03

Problemi risolti
Plug-in Android per Gradle
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0
Pelucchi
Errore di lint quando la riduzione delle risorse è disattivata

Plug-in Android per Gradle 9.3.0-alpha02

Problemi risolti
Plug-in Android per Gradle
Richiesta di funzionalità: aggiungi il supporto di native_libs_merge_blame_file al plug-in Android per Gradle
Pelucchi
Apice inverso mancante nel messaggio di problema di AnnotationDetector
Errore di lint quando la riduzione delle risorse è disattivata

Plug-in Android per Gradle 9.3.0-alpha01

Problemi risolti
Plug-in Android per Gradle
Problema con i codici versione generati automaticamente
AGP: Eseguire la migrazione dalla notazione del progetto come dipendenza
Pelucchi
Falso positivo di Lint con UseKtx

Plug-in Android per Gradle 9.3.0

Problemi risolti
Nessun problema pubblico è stato contrassegnato come risolto in AGP 9.3.0

DSL di ottimizzazione aggiornata per configurare le regole di conservazione R8

Introduce un DSL di ottimizzazione aggiornato per configurare le regole di conservazione per l'ottimizzazione R8, supportato dai test dei moduli dell'app e dei moduli della libreria. Per configurare l'ottimizzazione con il DSL aggiornato, utilizza il nuovo blocco optimization. Per le app, configura il blocco optimization all'interno di un tipo di compilazione (ad esempio release o debug) nello script di build a livello di app. Il DSL di ottimizzazione aggiornato semplifica la configurazione di R8:

  • L'attivazione dell'ottimizzazione consente sia l'ottimizzazione del codice sia la riduzione ottimizzata delle risorse.
  • Non è più necessario specificare il file delle regole di conservazione di Android predefinito.

Tieni presente che il DSL legacy continua a essere supportato.

Introduzione dei set di origini per definire le regole di conservazione

Inserisci le regole di conservazione nel set di risorse src/<variant>/keepRules/, con il suffisso del file .keep. I set di origini per le regole di conservazione sono supportati dalla DSL di ottimizzazione aggiornata e dalla DSL legacy. L'utilizzo di set di origini per le regole di conservazione è supportato nei moduli dell'app, nei moduli della libreria e come modo per definire le regole per i consumatori nei moduli Kotlin Multiplatform (KMP).