Plug-in Android Gradle 8.7.0 (octobre 2024)

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

Compatibilité

Le niveau d'API maximal compatible avec le plug-in Android Gradle 8.7 est le niveau d'API 35. Voici d'autres informations sur la compatibilité:

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

Changement de comportement de lint

À partir du plug-in Android Gradle 8.7.0-alpha08, si une LintError est détectée lors de l'exécution de lint à l'aide de Gradle, la tâche d'analyse lint génère une exception. Cette modification empêche les erreurs rares d'être mises en cache dans le cache de compilation.

Malheureusement, ce changement interrompt les compilations pour les projets comportant des instances LintError authentiques dans leurs fichiers de référence lint. Le message d'erreur contient des informations sur les vérifications lint à l'origine du problème. Dans certains cas, la mise à jour de la dépendance de bibliothèque correspondante peut résoudre le problème. Si ce n'est pas le cas, vous pouvez désactiver la vérification lint problématique jusqu'à ce que l'auteur de la bibliothèque la corrige.

Problèmes résolus

Plug-in Android Gradle 8.7.0

Problèmes résolus
Plug-in Android Gradle
AGP doit indiquer qu'il est compatible avec l'API 35 qui est sur le point d'être publiée.
AGP 8.5: de nombreuses tâches "mergeDebugResources" sont exécutées, ce qui ralentit les compilations
Définir ndk 27 comme NDK par défaut dans AGP.
AGP doit indiquer qu'il est compatible avec l'API 35 qui est sur le point d'être publiée.
AGP doit indiquer qu'il est compatible avec l'API 35 qui est sur le point d'être publiée.
Échec de l'exécution de lint Android avec NoSuchFileException
BuildType#initWith copie le bloc de post-traitement, mais la configuration ProGuard n'est pas appliquée
Impossible de fusionner pour les balises foregroundServiceType
Échec de l'exécution de lint Android avec NoSuchFileException
Lint
Lint doit rechercher les objets non valides utilisés comme ViewGroups
"android:host est manquant" pour les URI avec un hôte nul
Incompatibilité de KtAnalysisSessionProvider avec les vérifications lint introduite dans 8.7.0-alpha04
"Faux positif" WrongConstant lors de l'utilisation de PackageManager.ResolveInfoFlags.of avec Kotlin

Plug-in Android Gradle 8.7.1

Problèmes résolus
Plug-in Android Gradle
Les documents agp contiennent de nombreux éléments à définir.
Lint
AGP 8.6.1 : régression : échec de lint WrongConstant lors de l'utilisation de [Int].toLong() dans un @LongDef en Kotlin
Erreur lint "Au moins un hôte doit être spécifié" lors du paramétrage du schéma de filtre d'intent http ou https

Plug-in Android Gradle 8.7.2

Problèmes résolus
Lint
AGP 8.7.0 : faux positif de lint RestrictedApi sur NavOptionsBuilder.popUpTo
Réducteur de code (R8)
[R8 8.6.27] L'implémentation de la méthode a été remplacée par "throw null"
Les fichiers ProGuard Android par défaut génèrent un avertissement lorsqu'ils sont utilisés avec la version actuelle de R8
MissingStartupProfileItemsDiagnostic plante le client Gradle avec une erreur de manque de mémoire si le message est trop volumineux

Plug-in Android Gradle 8.7.3

Problèmes résolus
Lint
De nombreux avertissements de méthode d'API d'analyse manquants lors de l'exécution de lint
Vérification lint faussement positive android.permission.SCHEDULE_EXACT_ALARM n'est accordée qu'aux applications système