Plug-in Android Gradle 3.2.0 (septembre 2018)

Cette version du plug-in d'Android nécessite les éléments suivants :

3.2.1 (octobre 2018)

Avec cette mise à jour, il n'est plus nécessaire d'indiquer une version spécifique pour SDK Build Tools. Le plug-in Android Gradle utilise désormais par défaut la version 28.0.3.

Nouvelles fonctionnalités

  • Prise en charge de la compilation d'Android App Bundles : l'app bundle est un nouveau format d'importation qui inclut l'ensemble du code et des ressources compilés de votre application, tout en déléguant la génération des APK et leur signature au Google Play Store. Il n'est plus nécessaire de compiler, signer et gérer plusieurs APK, et les utilisateurs bénéficient de téléchargements moins volumineux, optimisés pour leur appareil. Pour en savoir plus, consultez À propos des Android App Bundles.

  • Prise en charge de vitesses de compilation incrémentielles améliorées à l'aide de processeurs d'annotations : le DSL AnnotationProcessorOptions étend désormais CommandLineArgumentProvider, ce qui vous permet à vous ou à l'auteur du processeur d'annotations d'annoter les arguments du processeur à l'aide d'annotations de type de propriété à compilation incrémentielle. L'utilisation de ces annotations améliore la précision et les performances des builds propres mis en cache et incrémentiels. Pour en savoir plus, consultez Transmettre des arguments aux processeurs d'annotations.

  • Outil de migration pour AndroidX : lorsque vous utilisez le plug-in Android Gradle 3.2.0 avec Android 3.2 ou version ultérieure, vous pouvez migrer les dépendances locales et Maven de votre projet pour utiliser les nouvelles bibliothèques AndroidX. Pour ce faire, sélectionnezRefactor > Migrate to AndroidX (Refactoriser > Migrer vers AndroidX) dans la barre de menu. Cet outil de migration définit également les indicateurs suivants sur true dans votre fichier gradle.properties :

    • android.useAndroidX : si cet indicateur est défini sur true, le plug-in Android utilise la bibliothèque AndroidX appropriée au lieu d'une bibliothèque Support. Si cet indicateur n'est pas spécifié, le plug-in le définit par défaut sur false.

    • android.enableJetifier : si cet indicateur est défini sur true, le plug-in Android migre automatiquement les bibliothèques tierces existantes pour utiliser AndroidX en réécrivant leurs binaires. Si cet indicateur n'est pas spécifié, le plug-in le définit par défaut sur false. Vous ne pouvez définir cet indicateur sur true que si android.useAndroidX est également défini sur true. Sinon, une erreur de compilation est générée.

      Pour en savoir plus, consultez la présentation d'AndroidX.

  • Nouvel outil de minification de code R8 : R8 est un nouvel outil de minification et d'obscurcissement du code qui remplace ProGuard. Vous pouvez commencer à utiliser la version preview de R8 en incluant ce qui suit dans le fichier gradle.properties de votre projet :

            android.enableR8 = true
            
            android.enableR8 = true
            

Changements de comportement

  • Le désucrage avec D8 est désormais activé par défaut.

  • AAPT2 se trouve maintenant dans le dépôt Maven de Google. Pour utiliser AAPT2, assurez-vous que la dépendance google() est présente dans votre fichier build.gradle, comme indiqué ci-dessous :

              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()
                }
              
  • Le multidex natif est désormais activé par défaut. Les versions précédentes d'Android Studio activaient le multidex natif lors du déploiement de la version de débogage d'une application sur un appareil exécutant le niveau d'API Android 21 ou supérieur. Désormais, que vous effectuiez le déploiement sur un appareil ou que vous compiliez un APK en vue de sa publication, le plug-in Android Gradle active le multidex natif pour tous les modules qui définissent minSdkVersion=21 ou plus.

  • Le plug-in applique désormais une version minimale du plug-in Protobuf (0.8.6), du plug-in Kotlin (1.2.50) et du plug-in Crashlytics (1.25.4).

  • Le plug-in de module de fonctionnalité com.android.feature n'accepte désormais plus que des lettres, des chiffres et des traits de soulignement pour les noms de module. Par exemple, si le nom de votre module de fonctionnalité contient des tirets, une erreur de compilation est générée. Ce comportement correspond à celui du plug-in de fonctionnalité dynamique.

Correction de bugs

  • JavaCompile peut désormais être mis en cache dans les projets avec liaison de données. (Problème 69243050)
  • Amélioration de l'évitement de compilation pour les modules de bibliothèque avec liaison de données (Problème 77539932)
  • Vous pouvez désormais réactiver la fonctionnalité Configurer à la demande si vous l'avez désactivée dans des versions antérieures en raison d'erreurs de compilation imprévisibles. (Problème 77910727)