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à:
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).