Plug-in Android Gradle 8.1.0 (juillet 2023)

Le plug-in Android Gradle 8.1.0 est une version majeure qui comprend plusieurs nouvelles fonctionnalités et améliorations.

Compatibilité

Version minimale Version par défaut Notes
Gradle 8.0 8.0 Pour en savoir plus, consultez Mettre à jour Gradle.
Build Tools SDK 33.0.1 33.0.1 Installez ou configurez des Build Tools SDK.
NDK N/A 25.1.8937393 Installez ou configurez une autre version du NDK.
JDK 17 17 Pour en savoir plus, consultez Définir la version du JDK.

Le DSL Kotlin est utilisé par défaut pour la configuration de compilation

Les nouveaux projets utilisent désormais le langage DSL Kotlin (build.gradle.kts) par défaut pour la configuration de compilation. Cela offre une meilleure expérience d'édition que le DSL Groovy (build.gradle) avec mise en surbrillance de la syntaxe, saisie automatique du code et navigation vers les déclarations. Notez que si vous utilisez AGP 8.1 et le DSL Kotlin pour configurer la compilation, vous devez utiliser Gradle 8.1 pour une expérience optimale. Pour en savoir plus, consultez le guide de migration du DSL Kotlin.

Prise en charge automatique des langues par application

À partir d'Android Studio Giraffe Canary 7 et d'AGP 8.1.0-alpha07, vous pouvez configurer votre application pour qu'elle prenne automatiquement en charge les préférences linguistiques par appli. En fonction des ressources de votre projet, le plug-in Android Gradle génère le fichier LocaleConfig et ajoute une référence à celui-ci dans le fichier manifeste final. Vous n'avez donc plus à le faire manuellement. L'AGP utilise les ressources des dossiers res de vos modules d'application et toutes les dépendances des modules de la bibliothèque pour déterminer les paramètres régionaux à inclure dans le fichier LocaleConfig.

Notez que la fonctionnalité de prise en charge automatique des langues par application est compatible avec les applications qui exécutent Android 13 (niveau d'API 33) ou version ultérieure. Pour utiliser cette fonctionnalité, vous devez définir compileSdkVersion sur 33 ou plus. Pour configurer les préférences linguistiques par appli pour les versions antérieures d'Android, vous devez toujours utiliser les API et les outils de sélection de langue intégrés à l'application.

Pour activer la prise en charge automatique des langues par application, spécifiez des paramètres régionaux par défaut:

  1. Dans le dossier res du module d'application, créez un fichier nommé resources.properties.
  2. Dans le fichier resources.properties, définissez les paramètres régionaux par défaut avec le libellé unqualifiedResLocale. Pour former les noms des paramètres régionaux, combinez le code de langue avec les codes de script et de région facultatifs, en les séparant par un tiret:

    • Langue: utilisez le code ISO 639-1 à deux ou trois lettres.
    • Script (facultatif): utilisez le code ISO 15924.
    • Région (facultatif): utilisez le code ISO 3166-1-alpha-2 à deux lettres ou le code UN_M.49 à trois chiffres.

    Par exemple, si votre paramètre régional par défaut est l'anglais américain :

        unqualifiedResLocale=en-US
        

AGP ajoute ces paramètres régionaux par défaut et tous les autres paramètres régionaux que vous avez spécifiés, à l'aide des répertoires values-* du dossier res, au fichier LocaleConfig généré automatiquement.

La prise en charge automatique des langues par application est désactivée par défaut. Pour activer cette fonctionnalité, utilisez le paramètre generateLocaleConfig dans le bloc androidResources {} du fichier build.gradle.kts au niveau du module (fichier build.gradle si vous utilisez Groovy):

Kotlin

android {
  androidResources {
    generateLocaleConfig = true
  }
}

Groovy

android {
  androidResources {
    generateLocaleConfig true
  }
}

Android Lint contient un bytecode ciblant la JVM 17

À partir de la version 8.1.0-alpha04 d'AGP, Android Lint contient le bytecode ciblant la JVM 17. Si vous écrivez des vérifications lint personnalisées, vous devez compiler avec JDK 17 ou version ultérieure et spécifier jvmTarget = '17' dans les options du compilateur Kotlin.

Pour en savoir plus sur l'outil lint, consultez Améliorer votre code avec des vérifications lint.

Paramètre de compression de la bibliothèque native déplacé vers le DSL

À partir de la version 8.1.0-alpha10 d'AGP, vous recevrez un avertissement si vous ne configurez pas la compression de bibliothèque native à l'aide du DSL au lieu du fichier manifeste. Les instructions suivantes expliquent comment mettre à jour votre configuration pour utiliser le DSL. Pour obtenir de l'aide concernant ces mises à jour, utilisez l'assistant de mise à niveau AGP (Tools > AGP Upgrade Assistant).

Pour utiliser des bibliothèques natives non compressées, supprimez l'attribut android::extractNativeLibs du fichier manifeste et ajoutez le code suivant au fichier build.gradle.kts au niveau du module (fichier build.gradle si vous utilisez Groovy):

Kotlin

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging = false
    }
  }
}

Groovy

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging false
    }
  }
}

Indicateurs de compilation expérimentaux

Il s'agit d'indicateurs expérimentaux pour la configuration de votre build disponible dans AGP 8.1.

Signaler Ajouté dans Valeur par défaut Notes
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes AGP 8.0 false Si vous activez cette option sans configuration de signature spécifiée, AGP utilisera la configuration de signature de débogage par défaut lors de l'exécution d'une compilation profilable ou débogable. Cette option est désactivée par défaut pour encourager les auteurs de compilations à déclarer des configurations de signature de profilage spécifiques.
android.experimental.library.desugarAndroidTest AGP 8.0 false Cet indicateur permet aux compilateurs de bibliothèques d'activer le désucrage de la bibliothèque principale pour les APK de test sans affecter l'AAR produite, par exemple via le linting. À terme, nous prévoyons de prendre en charge ce comportement dans l'API Variant.
android.experimental.testOptions.managedDevices.customDevice AGP 8.0 false Si cette option est activée, les appareils gérés par Gradle autorise un type d'appareil personnalisé défini par l'utilisateur qui peut être fourni par un plug-in. Cette option doit être activée si vous souhaitez utiliser le plug-in Firebase Test Lab.
android.lint.printStackTrace AGP 8.0 false Si cette option est activée, Android Lint imprime une trace de la pile en cas de plantage. Cette option a les mêmes capacités que la variable d'environnement LINT_PRINT_STACKTRACE.
android.experimental.testOptions.managedDevices.maxConcurrentDevices AGP 8.0 Aucune Spécifie le nombre maximal d'appareils gérés par Gradle (AVD) simultanés qui doivent être actifs à un moment donné. Si la valeur est nulle ou négative, le nombre d'appareils n'est pas limité.
android.experimental.testOptions.installApkTimeout AGP 8.0 Aucune Délai avant expiration, en secondes, pour installer un APK. Si cette valeur est négative ou égale à 0, elle est définie sur une valeur par défaut par UTP.