Plug-in Android Gradle 3.1.0 (marzo 2018)
Questa versione del plug-in Android richiede quanto segue:
-
Gradle 4.4 o superiore.
Per scoprire di più, consulta la sezione sull'aggiornamento di Gradle.
-
Strumenti di creazione 27.0.3 o versioni successive.
Tieni presente che non è più necessario specificare una versione per gli strumenti di creazione utilizzando la proprietà
android.buildToolsVersion
, poiché il plug-in utilizza per impostazione predefinita la versione minima richiesta.
Nuovo compilatore DEX, D8
Per impostazione predefinita, Android Studio ora utilizza un nuovo compilatore DEX chiamato D8. La compilazione DEX è il processo di trasformazione del bytecode .class
in bytecode .dex
per Android Runtime (o Dalvik, per le versioni precedenti di Android). Rispetto al compilatore precedente, chiamato DX, D8 effettua la compilazione più velocemente e restituisce file DEX più piccoli, il tutto mantenendo prestazioni di runtime dell'app uguali o migliori.
D8 non dovrebbe modificare il tuo flusso di lavoro quotidiano di sviluppo di app. Tuttavia, se riscontri problemi relativi al nuovo compilatore, segnala un bug. Puoi disabilitare temporaneamente D8 e utilizzare DX includendo quanto segue nel file gradle.properties
del tuo progetto:
android.enableD8=false
Per i progetti che
utilizzano le funzionalità del linguaggio Java 8,
il desugaring incrementale è abilitato per impostazione predefinita. Puoi disabilitarlo specificando
quanto segue nel file gradle.properties
del tuo progetto:
android.enableIncrementalDesugaring=false.
Utenti con anteprima: se già utilizzi una versione di anteprima di D8, tieni presente che ora viene compilata in base alle librerie incluse negli strumenti di creazione SDK, non in JDK. Pertanto, se accedi alle API che esistono nel JDK ma non nelle librerie degli strumenti di creazione dell'SDK, viene visualizzato un errore di compilazione.
Modifiche del comportamento
-
Quando crei più APK che hanno come target un'ABI diversa, per impostazione predefinita non vengono più generati APK per le seguenti ABI:
mips
,mips64
earmeabi
.Se vuoi creare APK che hanno come target queste ABI, devi utilizzare NDK r16b o precedente e specificare le ABI nel file
build.gradle
, come mostrato di seguito:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
Ora la cache di build del plug-in Android rimuove le voci della cache più vecchie di 30 giorni.
-
La trasmissione di
"auto"
aresConfig
non seleziona più automaticamente risorse stringa da pacchettizzare nel tuo APK. Se continui a usare"auto"
, il plug-in pacchettizza tutte le risorse stringa fornite dalla tua app e dalle sue dipendenze. Pertanto, devi invece specificare ogni impostazione internazionale che vuoi che il plug-in pacchettizzi nel tuo APK. -
Poiché i moduli locali non possono dipendere dall'APK di test della tua app, l'aggiunta di dipendenze ai test strumentati utilizzando la configurazione
androidTestApi
, anzichéandroidTestImplementation
, fa sì che Gradle invii il seguente avviso:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Correzioni
- Risolvi un problema per cui Android Studio non riconosce correttamente le dipendenze nelle build composte.
- Risolvi il problema per cui si verifica un errore di sincronizzazione del progetto quando carichi più volte il plug-in Android in una singola build, ad esempio quando più sottoprogetti includono ciascuno il plug-in Android nel classpath di buildscript.