Plug-in Android Gradle 8.4.0 (avril 2024)

Le plug-in Android Gradle 8.4.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.4 est le niveau d'API 34. Voici d'autres informations sur la compatibilité:

Version minimale Version par défaut Notes
Gradle 8,6 8,6 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 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.

Voici les nouvelles fonctionnalités du plug-in Android Gradle 8.4.

Versions de correctif

Voici une liste des versions de correctif dans Android Studio Jellyfish et dans le plug-in Android Gradle 8.4.

Android Studio Jellyfish | 2023.3.1 Correctif 2 et AGP 8.4.2 (juin 2024)

Mise à jour de sécurité importante:une vulnérabilité de sécurité dans le plug-in GitHub disponible dans Android Studio Iguana | 2023.2.1 et versions ultérieures peut exposer des jetons d'accès à des parties non autorisées.

Solution:Jetbrains a résolu le problème dans les produits de la plate-forme IntelliJ. La solution est désormais disponible dans Android Studio Jellyfish | 2023.3.1 correctif 2 (2023.3.1.20).

Si vous disposez déjà d'un build Android Studio sur le canal stable, vous pouvez obtenir la mise à jour en cliquant sur Help > Check for Updates (Aide > Rechercher les mises à jour) ou Android Studio > Check for Updates (Android Studio > Rechercher les mises à jour) sous macOS. Sinon, téléchargez la dernière version stable.

De plus, si vous avez activement utilisé la fonctionnalité de requête d'extraction GitHub dans l'IDE, nous vous recommandons vivement de révoquer tous les jetons GitHub utilisés par le plug-in. Étant donné que le plug-in peut utiliser l'intégration OAuth ou des jetons d'accès personnels (PAT), veuillez vérifier les deux et les révoquer si nécessaire:

  • Pour révoquer l'accès à l'intégration OAuth, accédez à Applications > Applications OAuth autorisées et révoquez l'accès au jeton Intégration de l'IDE JetBrains.
  • Pour révoquer l'accès des PAT, accédez à Jetons d'accès personnels et supprimez le jeton émis pour le plug-in GitHub. Le nom du jeton par défaut est IntelliJ IDEA GitHub integration plugin (Plug-in d'intégration GitHub IntelliJ IDEA), mais vous pouvez utiliser un nom personnalisé.

Après avoir révoqué l'accès au ou aux jetons, vous devez reconfigurer le plug-in pour que toutes ses fonctionnalités, y compris les opérations Git, fonctionnent à nouveau.

Nous vous prions de nous excuser pour les désagréments occasionnés et invitons tous les utilisateurs à effectuer la mise à jour immédiatement pour protéger leur code et leurs données.

Cette mise à jour mineure inclut également ces corrections de bugs.

Android Studio Jellyfish | 2023.3.1 Correctif 1 et AGP 8.4.1 (mai 2024)

Cette mise à jour mineure inclut ces corrections de bugs.

Les classes de la bibliothèque sont réduites

À partir de la version 8.4 du plug-in Android Gradle, si un projet de bibliothèque Android est minifié, les classes de programme réduites seront publiées pour la publication inter-projet. Cela signifie que si une application dépend de la version réduite des sous-projets de la bibliothèque Android, l'APK inclura des classes de bibliothèque Android réduites. Vous devrez peut-être ajuster les règles de conservation de la bibliothèque en cas de classes manquantes dans l'APK.

Si vous créez et publiez un AAR, les fichiers JAR locaux sur lesquels votre bibliothèque dépendra ne seront pas compressés dans l'AAR, ce qui signifie que le minificateur de code ne s'exécutera pas dessus.

Pour revenir au comportement précédent, définissez android.disableMinifyLocalDependenciesForLibraries dans le fichier gradle.properties et signalez un bug. Les futures versions d'AGP supprimeront cet indicateur.

Problèmes résolus

Plug-in Android Gradle 8.4.0

Problèmes résolus
Plug-in Android Gradle
Amélioration du message d'erreur indiquant pourquoi l'option "--release" ne peut pas être utilisée pour JavaCompile
Désactivation de la mise en cache de MergeSourceSetFolders avec @DoNotCacheByDefault
Impossible de définir la version de JaCoCo dans AGP 8.2.0
L'élément "isDebuggable" est absent de DynamicFeatureBuildType
Les classes de bibliothèque réduites ne sont pas publiées correctement pour une utilisation inter-projets
Fournir une API Variant#sources qui exclut les fichiers générés
Les modèles AGP ne contiennent aucune dépendance de projet Java-platform
ExtractAarTransform crée des classes.jar non reproductibles pour les fichiers AAR qui n'ont pas de classes.jar
Autoriser à configurer sourceInformation à partir de ComposeOptions
Impossible de trouver le champ sdk_runtime dans le message android.bundle.DeviceSpec
Prise en charge de compileOnlyApi
R8 échoue sur un module de bibliothèque lorsque le traitement des ressources est désactivé
Possibilité de modifier le nom de l'artefact lors de la transformation
L'ajout de la sortie des tâches en tant que srcDir de sourceSets.androidMain.resources ne crée pas de dépendances de tâches.
Il manque des 0 au début d'AndroidPluginVersion.toString()
Artifacts.add(FileSystemLocation) devrait être plus restrictif.
AGP 8.3.0-alpha11 génère un APK de version qui plante au démarrage avec android.content.res.Resources$NotFoundException
Échec de la tâche d'installation du plug-in Android Gradle 8.2.0 dans le projet qui utilise des fonctionnalités dynamiques
La compilation AIDL échoue avec IndexOutOfBoundsException: l'index 0 est hors limites pour la longueur 0
Problème de gestion des entrées incrémentielles de MergeJavaResourcesTask
AGP 8.3.0-alpha02 dépend de bibliothèques présentant des failles de sécurité connues
Le modèle d'activité sélectionné nécessite un projet avec des dépendances androidx.*
L'assistant de mise à niveau AGP supprime par erreur consumerProguardFiles du module
L'assistant de mise à niveau AGP se charge indéfiniment
SourceDirectories#static ne doit pas dépendre de la tâche GenerateBuildConfig
L'aperçu Compose ne parvient pas à résoudre les classes à partir d'une dépendance transitive
AGP 8.3 fait planter la tâche zipApksFor
Artefacts AndroidX pour ordinateur empaquetés dans un APK Android
Lint
GradleModelMocker du framework de test lint ne permet pas de définir la version de la bibliothèque
Lint K2 UAST: UCallableReferenceExpression signale un type de qualificatif incorrect
Faux positif Lint avec useK2Uast=true avec des fonctions surchargées
[Outil de création/Lint] Propriété du constructeur ChecksSdkIntAtLeast
Intégration de Lint
Lint ne parvient pas à éliminer l'ambiguïté d'une dépendance KMP

Plug-in Android Gradle 8.4.1

Problèmes résolus
Plug-in Android Gradle
Possibilité de supprimer un avertissement concernant l'abandon de la prise en charge du ciblage Java 8 par JDK 21
Compilateur DEX (D8)
java.lang.VerifyError : le vérificateur a rejeté la classe
Erreur de conversion de format R8 de la nouvelle version après obscurcissement
Il est possible que les builds intermédiaires ne comportent pas de contenu synthétique global complet pour les bouchons.

Plug-in Android Gradle 8.4.2

Problèmes résolus
Plug-in Android Gradle
AGP 8.4 semble interrompre les téléchargements GMD dans la version CI