Le plug-in Android Gradle 9.3 est une version mineure qui comprend de nombreuses nouvelles fonctionnalités et améliorations.
Compatibilité
Le niveau d'API maximal compatible avec le plug-in Android Gradle 9.3 est le niveau d'API 37.
Voici d'autres informations sur la compatibilité :
Tâche Gradle de l'outil d'analyse de la configuration R8 autonome
Le plug-in Android Gradle 9.3 introduit une tâche Gradle dédiée pour exécuter l'outil d'analyse de la configuration R8 de manière isolée. L'outil d'analyse de la configuration R8 vous aide à optimiser les règles de réduction et d'obscurcissement du code de votre application.
./gradlew :app:analyzeReleaseR8Config
La tâche :app:analyzeReleaseR8Config génère le rapport sans terminer le pipeline de compilation de l'APK ou du bundle. Cela permet de raccourcir la boucle de rétroaction, ce qui accélère l'itération des développeurs lorsqu'ils affinent les règles de conservation. Vous pouvez également générer le rapport automatiquement en exécutant une version R8 (par exemple, assembleRelease ou bundleRelease).
Pour en savoir plus, consultez Exécuter la tâche Gradle autonome pour générer un rapport.
Problèmes résolus
Plug-in Android Gradle 9.3.3
| Problèmes résolus |
| Plug-in Android Gradle |
|
Le nouveau DSL d'optimisation { enable = true } d'AGP 9.3.0 ne définit pas isMinifyEnabled dans l'objet ApplicationVariant
|
|
| Compilateur DEX (D8) |
|
D8 9.2.14 est environ 38% plus lent que 8.13.6 dans `mergeProjectDexDebug` avec des entrées/sorties identiques
|
|
| Réducteur de code (R8) |
|
Mode débogage D8 : ArrayIndexOutOfBoundsException : index -1 hors limites pour la longueur 31 — régression entre R8 8.8.34 et 8.9.27
|
|
VerifyError : l'outil Outliner étend de manière incorrecte la région try-catch, ce qui entraîne un registre non initialisé
|
|
R8 écrit un fichier `.kotlin_module` avec un ":" dans son nom, ce qui produit un nom de fichier non valide sur Windows.
|
|
Non-déterminisme de la compilation R8 : une entrée identique produit un fichier DEX/de mappage différent (régression de "Conserver les instructions Assume dans LIR")
|
|
Mappage en double avec R8 9.1
|
|
L'AGP produit par intermittence des fichiers dex dont la validation échoue et qui plantent l'application au lancement
|
|
NullPointerException : impossible d'appeler Position.getOutermostCaller(), car entryPosition est nul
|
|
Consommation de mémoire élevée par règle
|
|
R8 : VerifyError sur Android 4.4
|
|
Plug-in Android Gradle 9.3.2
| Problèmes résolus |
| Lint |
|
Plantages de lint AGP 9.3 sur JDK 17 : NoSuchMethodError : java.util.List.removeLast() dans JavaDocParser intellij-core fourni
|
|
Plug-in Android Gradle 9.3.1
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.1
|
Plug-in Android Gradle 9.3.0-rc02
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0-rc02
|
Plug-in Android Gradle 9.3.0-rc01
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0-rc01
|
Plug-in Android Gradle 9.3.0-alpha12
| Problèmes résolus |
| Plug-in Android Gradle |
|
Échec de compilation : la fuite de descripteur de fichier sur classes.jar dans compile_library_classes_jar empêche les recompilations sur Windows jusqu'au redémarrage de l'IDE
|
|
| Lint |
|
Lint traite la bibliothèque Java importée comme un projet Android, en ignorant la version du SDK de compilation
|
|
Plug-in Android Gradle 9.3.0-alpha11
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0-alpha11
|
Plug-in Android Gradle 9.3.0-alpha10
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0-alpha10
|
Plug-in Android Gradle 9.3.0-alpha09
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0-alpha09
|
Plug-in Android Gradle 9.3.0-alpha08
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0-alpha08
|
Plug-in Android Gradle 9.3.0-alpha07
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0-alpha07
|
Plug-in Android Gradle 9.3.0-alpha06
| Problèmes résolus |
| Plug-in Android Gradle |
|
JavaDocGenerationTask doit utiliser des nœuds de calcul
|
|
Plug-in Android Gradle 9.3.0-alpha05
| Problèmes résolus |
| Réducteur de code (R8) |
|
Le mappage d'obfuscation L8 n'est pas inclus dans app mapping.txt
|
|
Plug-in Android Gradle 9.3.0-alpha04
| Problèmes résolus |
| Plug-in Android Gradle |
|
L'ensemble de sources keepRules KMP est ignoré sans it.consumerKeepRules.publish = true
|
|
Plug-in Android Gradle 9.3.0-alpha03
| Problèmes résolus |
| Plug-in Android Gradle |
|
java.lang.ClassNotFoundException : classe "com.android.tools.r8.RecordTag" introuvable après la mise à niveau de Gradle vers la version 9.2.0
|
|
| Lint |
|
Erreur Lint lorsque la réduction des ressources est désactivée
|
|
Plug-in Android Gradle 9.3.0-alpha02
| Problèmes résolus |
| Plug-in Android Gradle |
|
Demande de fonctionnalité : ajouter la compatibilité native_libs_merge_blame_file au plug-in Android Gradle
|
|
| Lint |
|
Il manque un accent grave dans le message d'erreur AnnotationDetector
|
|
Erreur Lint lorsque la réduction des ressources est désactivée
|
|
Plug-in Android Gradle 9.3.0-alpha01
| Problèmes résolus |
| Plug-in Android Gradle |
|
Problème lié aux codes de version générés automatiquement
|
|
AGP : Migrer depuis la notation de dépendance "Project"
|
|
| Lint |
|
Faux positif Lint avec UseKtx
|
|
Plug-in Android Gradle 9.3.0
| Problèmes résolus |
|
Aucun problème public n'a été marqué comme résolu dans AGP 9.3.0
|
DSL d'optimisation mis à jour pour configurer les règles de conservation R8
Présentation d'un DSL d'optimisation mis à jour pour configurer les règles de conservation pour l'optimisation R8, compatible avec les tests de modules d'application et de modules de bibliothèque. Pour configurer l'optimisation avec le DSL mis à jour, utilisez le nouveau bloc optimization. Pour les applications, configurez le bloc optimization dans un type de compilation (tel que release ou debug) dans le script de compilation au niveau de l'application. Le DSL d'optimisation mis à jour simplifie la configuration R8 :
- L'activation de l'optimisation permet à la fois l'optimisation du code et la réduction des ressources.
- Vous n'avez plus besoin de spécifier le fichier de règles Keep Android par défaut.
Notez que l'ancienne DSL reste compatible.
Introduction des ensembles de sources pour définir les règles de conservation
Placez les règles de conservation dans l'ensemble de sources src/<variant>/keepRules/, avec le suffixe de fichier .keep. Les ensembles de sources pour les règles Keep sont compatibles avec le DSL d'optimisation mis à jour et l'ancien DSL. L'utilisation d'ensembles de sources pour les règles de conservation est compatible avec les modules d'application, les modules de bibliothèque et comme moyen de définir des règles de consommateur dans les modules Kotlin Multiplatform (KMP).