Notes de version du plug-in Android Gradle 8.9

Le dépôt JCenter est disponible en lecture seule depuis le 31 mars 2021. Pour en savoir plus, consultez Mise à jour du service JCenter.

Le système de compilation Android Studio est basé sur Gradle, et le plug-in Android Gradle ajoute plusieurs fonctionnalités spécifiques à la compilation d'applications Android. Bien que le plug-in Android Gradle (AGP) soit généralement mis à jour en parallèle d'Android Studio, il (et le reste du système Gradle avec lui) peut fonctionner indépendamment d'Android Studio et être mis à jour séparément.

Cette page explique comment maintenir vos outils Gradle à jour et détaille le contenu des dernières mises à jour. Pour obtenir les notes de version des anciennes versions du plug-in Android Gradle, consultez les notes de version antérieures.

Pour voir les corrections apportées à cette version du plug-in Android Gradle, consultez les problèmes résolus.

Pour un résumé global des modifications importantes à venir dans le plug-in Android Gradle, consultez la feuille de route du plug-in Android Gradle.

Pour savoir comment configurer vos builds Android avec Gradle, consultez les pages suivantes :

Pour en savoir plus sur le système de compilation Gradle, consultez le guide de l'utilisateur Gradle.

Mettre à jour le plug-in Android Gradle

Lorsque vous mettez à jour Android Studio, vous pouvez être invité à installer automatiquement la dernière version disponible du plug-in Android Gradle. Vous pouvez accepter la mise à jour ou indiquer manuellement une version spécifique en fonction des exigences de compilation de votre projet.

Vous pouvez préciser la version du plug-in soit via le menu File > Project Structure > Project (Fichier > Structure du projet > Projet) d'Android Studio, soit via le fichier build.gradle.kts de premier niveau. La version du plug-in s'applique à tous les modules créés dans ce projet Android Studio. L'exemple suivant définit le plug-in sur la version 8.9.0 du fichier build.gradle.kts:

plugins {
    id("com.android.application") version "8.9.0" apply false
    id("com.android.library") version "8.9.0" apply false
    id("org.jetbrains.kotlin.android") version "2.1.10" apply false
}
plugins {
    id 'com.android.application' version '8.9.0' apply false
    id 'com.android.library' version '8.9.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.1.10' apply false
}

Attention:N'utilisez pas de dépendances dynamiques comme 'com.android.tools.build:gradle:8.9.+' dans les numéros de version. L'utilisation de cette fonctionnalité peut entraîner des mises à jour inattendues et des problèmes pour résoudre les différences de version.

Si la version du plug-in indiquée n'a pas été téléchargée, Gradle la télécharge la prochaine fois que vous compilez votre projet ou cliquez sur File > Sync Project with Gradle Files (Fichier > Synchroniser le projet avec les fichiers Gradle) dans la barre de menu d'Android Studio.

Mettre à jour Gradle

En mettant à jour Android Studio, vous pouvez également recevoir une invite pour mettre à jour Gradle vers la dernière version disponible. Vous pouvez accepter la mise à jour ou indiquer manuellement une version spécifique en fonction des exigences de compilation de votre projet.

Le tableau suivant indique les versions de Gradle requises pour chaque version du plug-in Android Gradle. Pour optimiser les performances, utilisez la dernière version possible de Gradle et du plug-in.

Version du plug-inVersion minimale requise de Gradle
8,98.11.1
8,88.10.2
8,78,9
8,68,7
8,58,7
8,48,6
8,38,4
8.28.2
8.18.0
8.08.0
7.47.5
Version du plug-inVersion de Gradle requise
7.37.4
7.27.3.3
7.17.2
7.07.0
4.2.0+6.7.1
4.1.0+6.5+
4.0.0+6.1.1+
3.6.0 à 3.6.45.6.4+
3.5.0 à 3.5.45.4.1+
3.4.0 à 3.4.35.1.1+
3.3.0 à 3.3.34.10.1+
3.2.0 à 3.2.14.6+
3.1.0+4.4+
3.0.0+4.1+
2.3.0+3.3+
2.1.3 à 2.2.32.14.1 à 3.5
2.0.0 à 2.1.22.10 à 2.13
1.5.02.2.1 à 2.13
1.2.0 à 1.3.12.2.1 à 2.9
1.0.0 à 1.1.32.2.1 à 2.3

Vous pouvez indiquer la version de Gradle spécifique soit via le menu File > Project Structure > Project (Fichier > Structure du projet > Projet) d'Android Studio, soit en mettant à jour votre version de Gradle à l'aide de la ligne de commande. La méthode privilégiée consiste à utiliser l'outil de ligne de commande Gradle Wrapper, qui met à jour les scripts gradlew. L'exemple suivant définit la version de Gradle sur la version 8.9 à l'aide de Gradle Wrapper. Notez que vous devez exécuter cette commande deux fois pour mettre à niveau à la fois Gradle et Gradle Wrapper lui-même (pour en savoir plus, consultez Mettre à niveau Gradle Wrapper).

gradle wrapper --gradle-version 8.9

Toutefois, cela peut échouer dans certains cas, par exemple si vous venez de mettre à jour l'AGP et qu'il n'est plus conforme à la version actuelle de Gradle. Dans ce cas, modifiez la référence de distribution Gradle dans le fichier gradle/wrapper/gradle-wrapper.properties. L'exemple suivant définit la version de Gradle sur la version 8.9 dans le fichier gradle-wrapper.properties.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.9-bin.zip
...

Compatibilité entre le plug-in Android Gradle et Android Studio

Le système de compilation Android Studio est basé sur Gradle, et le plug-in Android Gradle (AGP) ajoute plusieurs fonctionnalités spécifiques à la compilation d'applications Android. Le tableau suivant indique la version de l'AGP requise pour chaque version d'Android Studio.

Version d'Android Studio Version de l'AGP requise
Suricate | 2024.3.1 3.2-8.9
Mise à jour groupée Ladybug | 2024.2.2 3.2-8.8
Ladybug | 2024.2.1 3.2-8.7
Mise à jour groupée Koala | 2024.1.2 3.2-8.6
Koala | 2024.1.1 3.2-8.5
Jellyfish | 2023.3.1 3.2-8.4
Iguana | 2023.2.1 3.2-8.3
Hedgehog | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2-8.0
Version d'Android Studio Version de l'AGP requise
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3.2-7.2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

Pour en savoir plus sur les nouveautés du plug-in Android Gradle, consultez les notes de version du plug-in Android Gradle.

Versions minimales des outils pour le niveau d'API Android

Il existe des versions minimales d'Android Studio et d'AGP compatibles avec un niveau d'API spécifique. L'utilisation de versions antérieures d'Android Studio ou d'AGP à celles requises par les éléments targetSdk ou compileSdk de votre projet pourrait entraîner des problèmes inattendus. Nous vous recommandons d'utiliser la dernière version preview d'Android Studio et d'AGP pour travailler sur des projets qui ciblent les versions preview de l'OS Android. Vous pouvez installer des versions preview d'Android Studio en plus d'une version stable.

Les versions minimales d'Android Studio et d'AGP sont les suivantes :

Niveau d'API Version minimale d'Android Studio Version minimale d'AGP
Aperçu de Baklava Suricate | 2024.3.1 8.9.0
35 Mise à jour groupée Koala | 2024.2.1 8.6.0
34 Hedgehog | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

Modifications par version (novembre 2020)

Mise à jour de la numérotation de version du plug-in Android Gradle (AGP) afin qu'il corresponde plus précisément à l'outil de compilation Gradle sous-jacent.

Modifications importantes :

  • L'AGP utilisera désormais des dénominations sémantiques de versions, et les modifications importantes seront effectuées dans les versions majeures.

  • Une version majeure de l'AGP sera publiée chaque année, en même temps que la version majeure de Gradle.

  • La version 7.0 de l'AGP suivra la version 4.2 et nécessitera une mise à niveau vers la version 7.x de Gradle. Chaque version majeure de l'AGP nécessite une mise à niveau majeure de version dans l'outil Gradle sous-jacent.

  • Les API seront abandonnées environ un an à l'avance, et les fonctionnalités de remplacement seront disponibles simultanément. Les API obsolètes seront supprimées environ un an plus tard lors de la mise à jour majeure suivante.

Compatibilité

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

Version minimale Version par défaut Notes
Gradle 8.11.1 8.11.1 Pour en savoir plus, consultez Mettre à jour Gradle.
Build Tools SDK 35.0.0 35.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.

Problèmes résolus

Plug-in Android Gradle 8.9.0

Problèmes résolus
Plug-in Android Gradle
Fournir un message d'erreur exploitable lorsque la tâche de configuration GMD échoue en raison d'un espace disque insuffisant
Le plug-in com.android.settings ne reconnaît pas targetSdk
Erreur inutile "compileSdkVersion n'est pas spécifié. Veuillez l'ajouter à build.gradle"
"Clean build" (Compilation propre) manquant dans le menu "Build" (Créer)
La prise en charge intégrée de Kotlin par AGP permet peut-être d'ajouter automatiquement la dépendance de stdlib Kotlin.
Mise à jour de shouldConfigureKotlinPlatformAttribute pour gérer la prise en charge intégrée de Kotlin
Indiquer la syntaxe Kotlin Gradle dans le message d'erreur pour "checkTestedAppObfuscationRelease"
Amélioration de l'erreur de bibliothèque fusionnée en cas de dépendance non résolue
Les propriétés système de gradle.properties ne sont pas transmises aux travailleurs Gradle R8 dans des processus distincts
Définir BuiltArtifact.outputFile comme type de fichier
L'absence d'espace de noms dans la bibliothèque fusionnée ne génère pas de message d'erreur approprié
Les options lint dans AGP 7.1.0-alpha08 n'autorisent pas stdout
Plug-in Android Gradle: les variantes doivent exposer les noms des ensembles de sources
Le cache de configuration est fragile par rapport au paramètre de la variable d'environnement TERM
AndroidComponentsExtension.addSourceSetConfigurations ne fonctionne pas lorsque les statistiques sont activées
Ligne 162 du script d'initialisation "C:\Users\mypc\AppData\Local\Temp\ijresolvers2.gradle"
AndroidComponentsExtension.addSourceSetConfigurations ne fonctionne pas lorsque les statistiques sont activées
Compilateur DEX (D8)
java.lang.VerifyError: le vérificateur a rejeté la classe: [0x430] copy1 v2<-v264 type=Undefined cat=3
Lint
Plantage de Lint avec les vérifications Gradle lint
Lint échoue avec InstantiationException sans message d'exception dans la trace de la pile lint
Vérification lint faussement positive android.permission.SCHEDULE_EXACT_ALARM n'est accordée qu'aux applications système
La vérification StringFormatInvalid doit être appliquée à la méthode stringResource de Compose
L'annotation RequiresFeature ne fonctionne pas pour les fichiers Kotlin
kotlin android.os.Handler removeCallbacks Runnable
Analyse lint de WrongConstant sur la définition au lieu de l'utilisation de la constante à l'aide de la touche Maj
L'analyse lint WrongConstant apparaît deux fois
Exception d'exécution sous l'API 26 avec une API Java nio non prise en charge (sans erreur lint)
Lint empêche l'utilisation de RequiresApi, même sur la méthode d'assistance privée lors des tests
Le mode K2 génère un avertissement RestrictedApi lors de l'utilisation de .hasRoute(Route::class) dans Android Studio
Lint suggère de remplacer @RequiresExtension lors des tests par @SdkSuppress, qui n'est pas compatible avec les extensions de SDK
Lint signale de manière incorrecte une mise en page imbriquée inutile lorsqu'un FrameLayout utilisé avec fitSystemWindows encapsule un RelativeLayout enfant qui nécessite une marge intérieure personnalisée.
La règle lint CoarseFineLocation ne tient pas compte d'un attribut maxSdkVersion
AppLinkSplitToWebAndCustom est UnknownIssue dans lint 8.7.3
Plantage de la vérification lint StringEscapeDetector sur "\\ "
Avertissement lint incorrect pour l'annotation "@Parcelize" sur les interfaces scellées
AS 2024.3.1.4 se bloque de manière intermittente lors de la modification de textes Kotlin.
Intégration de Lint
lintVitalRelease ne s'exécute pas automatiquement lors de la création du bundle d'application
Réducteur de code (R8)
Gson ProGuard ne fonctionne pas correctement après la mise à niveau vers AGP 8.8
java.lang.VerifyError : le vérificateur a rejeté la classe
Leanback plante lors de la réduction avec R8 inclus dans AGP 8.10.0-alpha04