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 pris en charge par 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."

Modification du comportement de lint

À partir du plug-in Android Gradle 8.7.0-alpha08, si un LintError est présent 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 la mise en cache des erreurs rares dans le cache de compilation.

Malheureusement, cette modification interrompt les compilations pour les projets comportant de véritables instances LintError dans leurs fichiers de référence lint. Le message d'erreur contient des informations sur les vérifications lint qui posent 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 lancée.
AGP 8.5 : de nombreuses tâches "mergeDebugResources" supplémentaires sont exécutées, ce qui ralentit les compilations
Définissez 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 lancée.
AGP doit indiquer qu'il est compatible avec l'API 35 qui est sur le point d'être lancée.
Échec de l'exécution d'Android lint avec NoSuchFileException
BuildType#initWith copie le bloc de post-traitement, mais la configuration ProGuard n'est pas appliquée
Impossible de fusionner les tags foregroundServiceType
Échec de l'exécution d'Android lint avec NoSuchFileException
Lint
Lint doit rechercher les objets non valides utilisés comme ViewGroups
"android:host is missing" pour les URI avec un hôte nul
Incompatibilité de KtAnalysisSessionProvider avec les vérifications lint introduites dans la version 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
La documentation AGP contient de nombreux éléments à déterminer.
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 "At least one host must be specified" (Au moins un hôte doit être spécifié) lors de la définition 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 Lint RestrictedApi sur NavOptionsBuilder.popUpTo
Réducteur de code (R8)
[R8 8.6.27] Implémentation de la méthode 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 mémoire insuffisante si le message est trop volumineux

Plug-in Android Gradle 8.7.3

Problèmes résolus
Lint
Nombreux avertissements concernant les méthodes d'API d'analyse manquantes lors de l'exécution de lint
Faux positif de la vérification lint android.permission.SCHEDULE_EXACT_ALARM n'est accordée qu'aux applications système