8 Réponses :
Mise à jour de la navigation sûre args
Ces lignes sont les plus importantes à examiner:
classpath "com.google.firebase:perf-plugin:1.4.1"
Cela indique que l'erreur provient de Le plugin args de navigation sécurisé .
Selon le Android Gradle Plugin 7.1.0 Notes de version : API AGP dont dépendent le plugin de navigation en toute sécurité gradle ont été supprimés. AGP 7.1 ne fonctionne pas avec la navigation SAFE ARGS Versions 2.4.0-RC1 ou 2.4.0 , mais fonctionnera avec les versions 2.5.0-alpha01 et 2.4.1. En attendant, en tant que solution de contournement, vous pouvez utiliser AGP 7.1 avec une construction instantanée d'args de navigation, Navigation 2.5.0-snapshot. Pour utiliser la construction instantanée, suivez le instructions instantanées avec ID de construction # 8054565.
comme navigation 2.4.1 Maintenant disponible, vous pouvez passer à cette version de la navigation pour gagner le correctif:
Backports à partir de navigation 2.5.0-alpha01
: Les args sûrs dépendent désormais du plugin Android Gradle version 7.0.4. Cela signifie que les args de la navigation en toute sécurité ne seront plus compatibles avec les versions Android Studio avant 7.0, mais est désormais compatible avec le plugin Android Gradle 7.1.0 et plus.
Caused by: java.lang.NoClassDefFoundError: com/android/build/api/extension/AndroidComponentsExtension at com.google.firebase.perf.plugin.FirebasePerfClassVisitorFactory.registerForProject(FirebasePerfClassVisitorFactory.java:54) at com.google.firebase.perf.plugin.FirebasePerfPlugin.perform(FirebasePerfPlugin.java:145) at com.google.firebase.perf.plugin.FirebasePerfPlugin.lambda$apply$0(FirebasePerfPlugin.java:107)
Notez que vous devez toujours utiliser la même version de la bibliothèque de navigation que le plugin Args Safe (c'est-à-dire que votre application doit également utiliser la navigation 2.4.1): vous ne devez pas Essayez d'utiliser le plugin Args de navigation 2.4.1+ avec une version antérieure de la navigation (telle que 2.3.5).
Remarque sur le plugin Firebase perf
Notez que vous pouvez voir cette même erreur lorsque vous utilisez:
classpath "com.google.firebase:perf-plugin:1.4.0"
avec une idea.log
de ces états:
dependencies { classpath 'com.android.tools.build:gradle:7.1.0' // Update this line to use 2.4.1 classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.1" }
selon le Firebase Perf Plugin 1.4.1 Remarques de sortie :
a migré des API du plugin Android Gradle déprécié.
Vous devez donc passer à 1.4.1:
Caused by: java.lang.NoClassDefFoundError: com/android/build/api/extension/AndroidComponentsExtension at androidx.navigation.safeargs.gradle.SafeArgsPlugin.apply(SafeArgsPlugin.kt:73) at androidx.navigation.safeargs.gradle.SafeArgsPlugin.apply(SafeArgsPlugin.kt:42)
Oui, mais le plugin Firebase Perf 1.4. * n'est pas compatible avec le plus récent Moshi. Le bug est connu, FIX sera dans ChipMunk. 1.3.5 a bien fonctionné jusqu'à ce que le plugin Android Gradle 7.1.0. Donc, en ce moment, il est impossible d'utiliser Moshi avec le plugin Firebase perf dans le plus récent "stable" AS. C'est si génial? github.com/square/moshi/issues/1463
@Jakoss - fwiw, ce commentaire sur le problème des feux semble impliquer que Firebase perf 1.3.2 fonctionne avec Moshi et AGP 7.1. Pourrait valoir la peine d'essayer.
Oui, cela fonctionne, ce qui est un peu un soulagement, mais il est toujours très bizarre que nous devons attendre que Chipmunk fonctionne avec le nouveau plugin de performances Firebase. L'utilisation d'un canal Unstable n'est pas une option pour les équipes qui entretiennent des applications plus grandes
Le remplacement de 2.4.0 par 2.5.0-alpha01 a fonctionné pour moi. Merci
Pour le problème de Hilt, appliquez Hilt_version = '2.40.5'
Dans mon cas, la version des plugins Hilt Hilt et Firebase Perf a résolu le problème
Vous pouvez faire cette chose. Fonctionnant parfaitement pour moi
// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { id 'com.android.application' version '7.1.0' apply false id 'com.android.library' version '7.1.0' apply false id 'org.jetbrains.kotlin.android' version '1.6.10' apply false id "com.google.dagger.hilt.android" version '2.41' apply false id 'androidx.navigation.safeargs.kotlin' version '2.4.0' apply false // use this one // classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0" (will not work now) } task clean(type: Delete) { delete rootProject.buildDir }
Vous devez utiliser l'ID de plugin que vous utilisiez auparavant dans le dossier Build.gradle of App (pas le projet Build.gradle One)
Où avez-vous obtenu ce numéro de version?
@Bitwisevs
I fixed the issue by downgrading the version of navigation to 2.3.5 def nav_version = "2.3.5" after testing, use navigation 2.4.0 and AGP 7.0.4 work fine
Bien que cela ait résolu le problème de synchronisation, cela conduit à d'autres avertissements dus aux usages API obsolètes - API 'BaseVariant.getApplicationIdTextreSource' est obsolète et a été remplacé par 'variantProperties.applicationId'. Il sera supprimé dans la version 7.0 du plugin Android Gradle. Pour plus d'informations, voir TBD.
- J'aime particulièrement la partie «voir TBD» de ce message, indiquant qu'il s'agit probablement d'un territoire dangereux qui pourrait également se casser à tout moment.
Dans mon cas, le problème était avec la version hilt . J'ai mis à jour vers le dernier 2.40.5
et c'est du travail.
Si vous n'avez pas hilt dépendance dans votre projet la meilleure façon de trouver une bibliothèque qui lance l'exception pendant Gradle Sync, c'est pour vérifier idea.log fichier.
Dans mon cas quand, j'ai dû mettre à niveau à la fois la version de Hilt et de Navigation Composante
Mise à jour: Le problème est maintenant résolu dans AGP 7.1.2 .
Voici quelques mises à jour:
v7.2.0-beta01
a été mis à disposition la semaine dernière et fonctionnera avec le dernier plugin perf v1.4.1
. v7.2 rc1
devrait être publié le 1er mars et AGP v7.2
final est planifié le 9 mars. En attendant, voici quelques solutions de contournement qui méritent d'être essayées:
v1.3.5
avec AGP v6.8.3
. Perf Plugin v1.3.5
et ci-dessous n'est pas compatible avec AGP v7.0.0 +
; Pour que le plugin perf soit compatible avec AGP v7.0.0 +
, nous devons utiliser la nouvelle API de transformation, qui introduit la panne de construction où même si le plugin perf filtre les classes dans le Répertoire Meta-Inf /
de l'instrumentation, AGP essaie toujours de visiter la classe pour collecter des informations à ce sujet. Cependant, AGP travaille sur une correction plus permanente pour cela où nous aurons une option pour filtrer complètement les classes ratées. org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'. at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93) at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:133) at ... Caused by: java.lang.NoClassDefFoundError: com/android/build/api/extension/AndroidComponentsExtension at com.google.firebase.perf.plugin.FirebasePerfClassVisitorFactory.registerForProject(FirebasePerfClassVisitorFactory.java:54) at com.google.firebase.perf.plugin.FirebasePerfPlugin.perform(FirebasePerfPlugin.java:145) at com.google.firebase.perf.plugin.FirebasePerfPlugin.lambda$apply$0(FirebasePerfPlugin.java:107) at org.gradle.api.internal.plugins.DefaultPluginManager$2.execute(DefaultPluginManager.java:258) at ...
La mise à jour du plugin Performance Firebase au 1.4.1 a fonctionné pour moi.
Cela ne fonctionnera que si votre projet ne dépend pas d'une bibliothèque qui utilise MRJARS. J'ai mis à jour la réponse avec plus de détails à ce sujet.
Mise à jour de «2.40.5» et Firebase: Perf-Plugin à «1.4.1» a fonctionné pour moi.
Dans mon cas, j'ai fait face à un problème sur Secrets-Gradle-Plugin. Initialement, j'ai utilisé la version 2.0.1 (dernier). Après avoir rétrogradé en 1.3.0. Cela a fonctionné pour moi.
Dans Root Build de Project. pre>