Plug-in Android per Gradle 3.2.0 (settembre 2018)

Questa versione del plug-in Android richiede quanto segue:

Versione minima Versione predefinita Note
Gradle 4,6 4,6 Per scoprire di più, consulta la sezione Aggiornare Gradle.
Strumenti di compilazione SDK 28.0.3 28.0.3 Installa o configura gli strumenti di compilazione dell'SDK.

3.2.1 (ottobre 2018)

Con questo aggiornamento, non è più necessario specificare una versione per gli strumenti di compilazione dell'SDK. Per impostazione predefinita, il plug-in Android per Gradle ora utilizza la versione 28.0.3.

Nuove funzionalità

  • Supporto per la creazione di Android App Bundle:l'app bundle è un nuovo formato di caricamento che include tutto il codice e le risorse compilati della tua app, posticipando la generazione e la firma dell'APK al Google Play Store. Non devi più creare, firmare e gestire più APK e gli utenti ottengono download più piccoli ottimizzati per il loro dispositivo. Per saperne di più, consulta Informazioni sugli Android App Bundle.

  • Supporto per velocità di compilazione incrementale migliorate quando si utilizzano gli elaboratori di annotazioni: il DSL AnnotationProcessorOptions ora estende CommandLineArgumentProvider, il che consente a te o all'autore dell'elaboratore di annotazioni di annotare gli argomenti per l'elaboratore utilizzando annotazioni del tipo di proprietà di compilazione incrementale. L'utilizzo di queste annotazioni migliora la correttezza e il rendimento delle compilazioni incrementali e pulite memorizzate nella cache. Per scoprire di più, consulta Passare gli argomenti ai processori di annotazioni.

  • Strumento di migrazione per AndroidX: se utilizzi il plug-in Android Gradle 3.2.0 con Android 3.2 e versioni successive, puoi eseguire la migrazione delle dipendenze locali e Maven del progetto per utilizzare le nuove librerie AndroidX selezionando Ristruttura > Migra ad AndroidX dalla barra dei menu. L'utilizzo di questo strumento di migrazione imposta inoltre i seguenti flag su true nel file gradle.properties:

    • android.useAndroidX: se impostato su true, il plug-in Android utilizza la libreria AndroidX appropriata anziché una libreria di supporto. Se questo flag non è specificato, il plug-in lo imposta su false per impostazione predefinita.

    • android.enableJetifier: se impostato su true, il plug-in Android esegue automaticamente la migrazione delle librerie di terze parti esistenti per l'utilizzo di AndroidX riscrivendo i relativi file binari. Se questo flag non è specificato, il plug-in lo imposta su false per impostazione predefinita. Puoi impostare questo flag su true solo se anche android.useAndroidX è impostato su true, altrimenti viene visualizzato un errore di compilazione.

      Per scoprire di più, leggi la panoramica di AndroidX.

  • Nuovo strumento di riduzione del codice, R8: R8 è un nuovo strumento per la riduzione e l'oscuramento del codice che sostituisce ProGuard. Puoi iniziare a utilizzare la versione di anteprima di R8 includendo quanto segue nel file gradle.properties del progetto:

            android.enableR8 = true
            
            android.enableR8 = true
            

Modifiche al comportamento

  • La rimozione del codice non necessario con D8 è ora attiva per impostazione predefinita.

  • AAPT2 è ora disponibile nel repository Maven di Google. Per utilizzare AAPT2, assicurati di avere la dipendenza google() nel file build.gradle, come mostrato di seguito:

              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
              buildscript {
                    repositories {
                        google() // here
                        jcenter()
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.2.0'
                    }
                }
                allprojects {
                    repositories {
                        google() // and here
                        jcenter()
                }
              
  • La funzionalità multidex nativa è ora abilitata per impostazione predefinita. Le versioni precedenti di Android Studio attivavano il multidex nativo durante il deployment della versione di debug di un'app su un dispositivo con Android API 21 o versioni successive. Ora, indipendentemente dal fatto che tu stia eseguendo il deployment su un dispositivo o stia creando un APK per la release, il plug-in Gradle per Android attiva il multidex nativo per tutti i moduli impostati su minSdkVersion=21 o versioni successive.

  • Ora il plug-in impone una versione minima del plug-in protobuf (0.8.6), del plug-in Kotlin (1.2.50) e del plug-in Crashlytics (1.25.4).

  • Il plug-in del modulo delle funzionalità,com.android.feature, ora impone l'utilizzo solo di lettere, cifre e trattini bassi quando si specifica un nome del modulo. Ad esempio, se il nome del modulo della funzionalità include trattini, viene visualizzato un errore di compilazione. Questo comportamento corrisponde a quello del plug-in della funzionalità dinamica.

Correzioni di bug

  • JavaCompile ora è memorizzabile nella cache nei progetti con il binding dei dati. (Issue #69243050)
  • Migliore evitamento della compilazione per i moduli della libreria con il binding dei dati. (Issue #77539932)
  • Ora puoi riattivare configure-on-demand se lo hai disattivato nelle versioni precedenti a causa di alcuni errori di compilazione imprevedibili. (Issue #77910727)