Plug-in Android Gradle 8.2.0 (novembre 2023)
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Le plug-in Android Gradle 8.2.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.2 est le niveau d'API 34.
Voici d'autres informations sur la compatibilité :
Nouvelle macro pour spécifier le chemin d'accès au JDK
#GRADLE_LOCAL_JAVA_HOME
est une nouvelle macro que vous pouvez utiliser pour spécifier le chemin d'accès au JDK. Il est ainsi plus facile et plus sûr de spécifier le chemin d'accès à la page d'accueil Java utilisée pour l'exécution du daemon Gradle (processus en arrière-plan) pour votre projet. La sélection du chemin d'accès est stockée dans le champ java.home
du fichier .gradle/config.properties
. Définissez ce champ via les paramètres du JDK Gradle dans Android Studio : File (ou Android Studio sous macOS) > Settings > Build, Execution, Deployment > Build Tools > Gradle.
Les nouveaux projets utiliseront #GRADLE_LOCAL_JAVA_HOME
par défaut. Les projets existants seront automatiquement migrés vers la nouvelle macro après une synchronisation réussie, sauf si vous utilisez déjà une macro telle que #JAVA_HOME
.
Les principaux avantages de la nouvelle macro sont les suivants :
- Vous pouvez modifier manuellement le chemin d'accès au JDK pour déclencher la synchronisation sans avoir à ouvrir votre projet.
- Il y a moins d'erreurs liées à des versions incompatibles de Gradle et du JDK du projet, car il existe une source unique d'informations pour votre sélection du JDK Gradle.
Problèmes résolus
Plug-in Android Gradle 8.2.0
Problèmes résolus |
Plug-in Android Gradle |
Les types de sources personnalisés devraient créer des ensembles de sources de plusieurs types
|
La vérification de la version du SDK ne gère pas les utilisateurs des extensions SDK
|
DependenciesInfoBuilder a besoin d'une mise à jour et d'une documentation pour l'API
|
Échec de DexingNoClasspathTransform (minSdk >= 24) avec la cible Java 11 en raison de membres imbriqués manquants
|
DslExtension.Builder.extendProjectWith() ne fonctionne pas comme décrit en Groovy
|
Ajout de l'API VariantSelector.withFlavor qui n'utilise pas kotlin.Pair
|
AndroidLintAnalysisTask ( :lintAnalyzeExternalRelease) présente un défaut de cache (miss), car "proguard.txt" a changé
|
Le fichier manifeste fusionné avec l'application contient les attributs extractNativeLibs et useEmbeddedDex à partir des dépendances
|
Échec d'AIDL avec Build Tools 33.0.0
|
AGP : exposer le chemin d'accès à l'outil AIDL et au fichier AIDL du framework en tant qu'API publique
|
Requête : laissez l'IDE proposer un correctif pour "PermittedSubclasses requires ASM9" (PermittedSubclasses nécessite ASM9)
|
Ciblage du bytecode 17 lors de la compilation d'AGP
|
Suppression de VariantManager.getModifiedName
|
AndroidTest.packaging.jniLibs.keepDebugSymbols n'affecte pas le packaging androidTest
|
Les tâches de test d'instrumentation GMD sont bloquées et échouent en cas de nouvelle tentative
|
generateLocaleConfig dans agp 8.1.0 utilise un ordre non déterministe qui endommage les compilations reproductibles
|
ProcessApplicationManifest.navigationJsons contient des fichiers avec des chemins absolus
|
Une fois AnalyticsService créé, l'accès à GradleBuildProject.Builder via AnalyticsConfiguratorService n'est pas autorisé
|
AndroidTest.packaging.jniLibs.keepDebugSymbols n'affecte pas le packaging androidTest
|
Compilation autorisée pour les valeurs de couleur illégales
|
"ReplaceWith" incorrect pour VariantBuilder
|
Gradle 8.1 interrompt la mise en cache de la configuration en raison de .gradle/.android/analytics.settings
|
Les messages d'abandon n'utilisent pas "ReplaceWith"
|
Annonce d'un moyen d'obtenir la version par défaut du NDK
|
Le plug-in Android Gradle nécessite Java 17 pour s'exécuter
|
Incompatibilité entre la transformation ASM et toAppend()
|
Correction d'erreurs lint lors de l'exécution de lint avec K2 UAST via Gradle sur un projet KMP
|
Prise en charge du niveau de variante missingDimensionStrategy, et éventuellement du type de compilation/flavor matchingFallback
|
"android.injected.studio.version" a été supprimé dans Android Studio Giraffe
|
Ajout de la possibilité de désactiver AndroidXDependencyCheck
|
generateLocaleConfig dans agp 8.1.0 utilise un ordre non déterministe qui endommage les compilations reproductibles
|
Annonce des exigences des versions R8/D8 dans les métadonnées AAR (par exemple, pour coreLibraryDesugaring et les nouvelles API hors ligne)
|
Avertissement de synchronisation : "GradleBuildProject.Builder ne doit pas être accessible via AnalyticsConfiguratorService après la création d'AnalyticsService"
|
Mise à jour vers la version intermédiaire ou finale de Gradle 8.2
|
Impossible d'accéder à "java.lang.Comparable"
|
androidResources n'est pas disponible dans le module de bibliothèque Android
|
L'exécution de la tâche ':app:mergeReleaseClasses' a échoué après la mise à jour d'AGP de la version 8.0.2 à la version 8.1.0
|
Gradle 8.1 interrompt la mise en cache de la configuration en raison de .gradle/.android/analytics.settings
|
[AGP 8.1.0] Le test ./gradlew échoue avec le message "Unable to find manifest output" (Impossible de trouver la sortie du fichier manifeste) si les valeurs splits.abi.isEnable et testOptions.unitTests.isIncludeAndroidResources sont définies sur true.
|
Android Studio Giraffe ne respecte pas versionCodeOverride avec AGP 8.1.
|
AGP 8.1.0 désinstalle l'application après avoir exécuté des tests d'instrumentation, ce qui n'est pas le cas de la version 7.4.2.
|
La transformation d'un APK génère une erreur avec ListingFileRedirectTask.
|
RÉGRESSION HEDGEHOG : le bouton "Run" (Exécuter) est retardé de quelques secondes (création d'une spécification)
|
|
Compilateur DEX (D8) |
Activation de l'enregistrement natif et des classes scellées lors de la conversion au format .dex pour min-api 34 et versions ultérieures
|
|
Lint |
La vérification lint instanciée ne gère pas correctement AppComponentFactory
|
Les versions alpha de lint 8.2.0 ne prennent toujours pas en charge l'importation de fonctions de niveau supérieur dans Kotlin
|
Ajout d'une option permettant de ne pas inclure les numéros de ligne et de colonne dans la référence lint
|
Ajout d'une option permettant de ne pas inclure les numéros de ligne et de colonne dans la référence lint
|
Les tests lint ne prennent pas en charge les fonctionnalités du langage Java 17
|
Bumblebee 2021.1.1 Correctif 1 indique qu'une ancienne version (20030203.000550) de commons-io est plus récente que la version 2.11.0
|
Les versions alpha de lint 8.2.0 ne prennent toujours pas en charge l'importation de fonctions de niveau supérieur dans Kotlin
|
Bumblebee 2021.1.1 Correctif 1 indique qu'une ancienne version (20030203.000550) de commons-io est plus récente que la version 2.11.0
|
Android Studio indique à tort que la version spécifiée est obsolète.
|
lint ignore le problème UseValueOf lors de l'utilisation de K2 UAST
|
Problèmes inattendus provenant d'un autre projet signalé par Android Lint
|
Android Lint échoue sur une bibliothèque KMP quand la propriété "variantInputs.name" n'a pas de valeur configurée.
|
|
Intégration de Lint |
Erreur lint DuplicatePlatformClasses liée à la dépendance testImplementation
|
|
Réducteur de code (R8) |
java.lang.VerifyError : le vérificateur a rejeté la classe
|
Le build reste bloqué sur :minifyReleaseWithR8 lors de l'utilisation de la bibliothèque Apache POI
|
Kotlin 1.9 entraîne la destruction des lambdas Kotlin par R8 si les vérifications de valeurs nulles sont supprimées
|
|
Plug-in Android Gradle 8.2.1
Problèmes résolus |
Plug-in Android Gradle |
Ne pas exécuter de tâche dexing sur les classes de sous-projets lorsqu'elles sont déjà converties au format .dex via des transformations d'artefact
|
Échec du plug-in Android Gradle avec JavaVersion.VERSION_11 et OpenJDK 21 ea
|
|
Compilateur DEX (D8) |
Enregistrements de désucrage pour Android U
|
|
Réducteur de code (R8) |
R8 génère un fichier DEX défectueux, ce qui entraîne une exception de diffusion de classe au moment de l'exécution.
|
R8 entraînant un changement d'interface en interface inaccessible
|
Plantage du SDK R8 Flurry avec AGP 8.2.0
|
Android : R8 provoque le plantage de la sous-classe de LinearLayoutManager
|
ClassCastException dans R8 lorsque le repackaging est activé et que la minification, l'obscurcissement et l'optimisation sont désactivés
|
R8 bloqué dans BridgeAnalyzer.analyzeMethod
|
R8 v8.2.33, plantage de l'exécution après la mise à niveau "java.lang.VerifyError: type incorrect dans la pile d'opérande"
|
|
Plug-in Android Gradle 8.2.2
Problèmes résolus |
Plug-in Android Gradle |
Impossible de définir la version de JaCoCo dans AGP 8.2.0
|
|
Compilateur DEX (D8) |
[Bibliothèque désucrée] La version 2.1 de la bibliothèque désucrée n'est pas compatible avec les versions précédentes de R8
|
Les optimisations fonctionnent, même avec D8 uniquement ?
|
|
Réducteur de code (R8) |
[R8 8.3.21] R8 8.3.21 dépasse 1,57 Mo par rapport à R8 8.1.56
|
class.getInterfaces() renvoie un résultat vide
|
|
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/13 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/13 (UTC)."],[],[],null,[]]