Plug-in Android Gradle 8.6.0 (août 2024)

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

Compatibilité

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

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

Problèmes résolus

Plug-in Android Gradle 8.6.1

Problèmes résolus
Compilateur DEX (D8)
La tâche/transformation de dexing génère un contenu non déterministe pour classes.dex
Réducteur de code (R8)
StackOverflowError dans R8 8.5.x dans SimpleInliningConstraintAnalysis
Tâche :xxxx:minifyXXXReleaseWithR8 ERREUR : R8 : java.util.ConcurrentModificationException
java.lang.NullPointerException : impossible d'appeler "com.android.tools.r8.ir.analysis.type.TypeElement.asClassType()"

Plug-in Android Gradle 8.6.0

Problèmes résolus
Plug-in Android Gradle
Régression avec AGP 7.0.0-alpha10 : l'application du plug-in "com.android.internal.library" échoue lorsque DataBinding est activé
Erreurs lors de l'exécution de lint avec et sans K2 UAST
Manifeste non généré pour la configuration androidTest de la variante
AGP 8.4 tente de configurer des profils de démarrage sur les builds de débogage
[Koala 2024.1.2 Canary 2] Erreur lors de l'exécution d'un module de profil de référence sur un APK divisé
Nettoyage et suppression de ProjectInfo
Mettre à jour le kdoc obsolète pour `isIncludeAndroidResources` dans AGP DSL
Lint utilise le répertoire res sans ajouter de dépendance de tâche
AGP 8.5 : de nombreuses tâches "mergeDebugResources" sont exécutées, ce qui ralentit les builds
L'ajout d'un répertoire srcs via l'API Variant ne fonctionne pas comme prévu
Compilateur DEX (D8)
Mettre à jour la base de données de l'API vers Android 15 (niveau d'API 35)
java.lang.VerifyError : le vérificateur a rejeté la classe com.pax.log.LogUtils : java.lang.StackTraceElement com.pax.log.LogUtils.getCaller(com.pax.log.b, java.lang.StackTraceElement[], int) n'a pas réussi à vérifier
Lint
Lint n'appelle pas visitAnnotationUsage pour les utilisations d'annotations annotées
Erreur lint UnknownNullness lors de l'utilisation d'annotations de type
[désucrage de bibliothèque] lint affiche un faux positif pour les avertissements NewApi lorsque le désucrage est activé
Avertissement lint incorrect pour le Credential Manager sur Wear
Lint : SetTextI18n se plaint de l'attribution d'une chaîne vide.
Intégration de Lint
Les tâches lint échouent avec le build inclus
Réducteur de code (R8)
[r8 8.5]La fusion horizontale des classes r8 entraîne une erreur de vérification sur Android 5 lorsque la modélisation de l'API est désactivée
Une version Wear OS créée avec le plug-in Gradle 8.4.0/8.5.0 peut entraîner une erreur java.lang.IllegalAccessError
R8 remplace implicitement une clause de membre vide par une correspondance de ()
[r8 8.5] Fusion verticale des classes entraînant une NPE d'exécution
Erreur de traitement R8 probablement due à l'opérateur de décalage à droite
R8 (AGP 8.5.0+) échoue avec l'erreur "Unexpected rewriting of item: ... to two distinct items:..." (Réécriture inattendue de l'élément : ... en deux éléments distincts :...)
Le fichier DEX généré par R8 affiche "Unable to find static main(String[]) in 'Test'" (Impossible de trouver main(String[]) statique dans "Test") lors de l'exécution
Comportement différent entre les programmes empaquetés par R8 et D8
R8 NullPointer après la mise à jour vers Kotlin 2.0