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 e armeabi.

    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" a resConfig 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.