Plug-in Android per Gradle 3.1.0 (marzo 2018)

Questa versione del plug-in Android richiede quanto segue:

Versione minima Versione predefinita Note
Gradle 4.4 4.4 Per saperne di più, consulta la sezione Aggiornare Gradle.
Strumenti di build dell'SDK 27.0.3 27.0.3 Installa o configura gli strumenti di build dell'SDK. Tieni presente che non è più necessario specificare una versione per gli strumenti di build utilizzando la proprietà android.buildToolsVersion: il plug-in utilizza la versione minima richiesta per impostazione predefinita.

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 .dex bytecode per Android Runtime (o Dalvik, per le versioni precedenti di Android). Rispetto al compilatore precedente, chiamato DX, D8 compila più velocemente e genera file DEX più piccoli, pur mantenendo le stesse o migliori prestazioni di runtime dell'app.

D8 non dovrebbe modificare il flusso di lavoro di sviluppo quotidiano dell'app. Tuttavia, se riscontri problemi relativi al nuovo compilatore, ti preghiamo di segnalare un bug. Puoi disattivare temporaneamente D8 e utilizzare DX includendo quanto segue nel file gradle.properties del progetto:

      android.enableD8=false
    

Per i progetti che utilizzano le funzionalità del linguaggio Java 8, il desugaring incrementale è attivato per impostazione predefinita. Puoi disattivarlo specificando quanto segue nel file gradle.properties del progetto:

      android.enableIncrementalDesugaring=false.
    

Utenti della versione di anteprima: se stai già utilizzando una versione di anteprima di D8, tieni presente che ora viene compilata in base alle librerie incluse negli strumenti di build dell'SDK, non nella JDK. Pertanto, se accedi alle API esistenti nella JDK ma non nelle librerie degli strumenti di build dell'SDK, riceverai un errore di compilazione.

Modifiche del comportamento

  • Quando crei più APK, ognuno dei quali è destinato a un ABI diverso, per impostazione predefinita non vengono più generati APK per i seguenti ABI: mips, mips64, e armeabi.

    Se vuoi creare APK destinati a questi ABI, devi utilizzare NDK r16b o versioni precedenti e specificare gli ABI nel file build.gradle, come mostrato di seguito:

              splits {
                  abi {
                      include 'armeabi', 'mips', 'mips64'
                      ...
                  }
              }
            
              splits {
                  abi {
                      include("armeabi", "mips", "mips64")
                      ...
                  }
              }
            
  • La cache di build del plug-in Android ora elimina le voci della cache più vecchie di 30 giorni.

  • Il passaggio di "auto" a resConfig non seleziona più automaticamente le risorse stringa da inserire nel pacchetto APK. Se continui a utilizzare "auto", il plug-in inserisce nel pacchetto tutte le risorse stringa fornite dall'app e dalle relative dipendenze. Pertanto, devi invece specificare ogni localizzazione che vuoi che il plug-in inserisca nel pacchetto APK.

  • Poiché i moduli locali non possono dipendere dall'APK di test dell'app, l'aggiunta di dipendenze ai test strumentati utilizzando la androidTestApi configurazione, anziché androidTestImplementation, fa sì che Gradle generi 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

  • Risolto un problema per cui Android Studio non riconosce correttamente le dipendenze nelle build composite.
  • Risolto un problema per cui si verifica un errore di sincronizzazione del progetto quando carichi il plug-in Android più volte in una singola build, ad esempio quando più sottoprogetti includono il plug-in Android nel classpath di buildscript.