De nulle part, la construction s'écrase avec une étrange erreur liée au composant de navigation même si elle fonctionnait auparavant, l'erreur est dans la classe générée, dans mon cas nativelanguageselectionfragmentdirections
Voici l'erreur
"androidx.navigation:navigation-fragment-ktx:2.3.5" "androidx.navigation:navigation-ui-ktx:2.3.5"
Et voici le code du graphique de navigation
<?xml version="1.0" encoding="utf-8"?> <navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/first_login_graph.xml" app:startDestination="@id/nativeLanguageSelectionFragment"> <fragment android:id="@+id/nativeLanguageSelectionFragment" android:name="com.linguistic.linguistic.framework.presentation.loginscreens.ui.main.NativeLanguageSelectionFragment" android:label="NativeLanguageSelectionFragment" tools:layout="@layout/language_selection_fragment"> <action android:id="@+id/goToSelectLearningLangAction" app:destination="@id/learningLanguageSelectionFragment" app:enterAnim="@anim/slide_in_right" app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" app:popUpTo="@id/nativeLanguageSelectionFragment" app:popUpToInclusive="true" /> </fragment> <fragment android:id="@+id/learningLanguageSelectionFragment" android:name="com.linguistic.linguistic.framework.presentation.loginscreens.ui.main.LearningLanguageSelectionFragment" android:label="LearningLanguageSelectionFragment" tools:layout="@layout/language_selection_fragment"> <argument android:name="nativeLanguageID" app:argType="string" app:nullable="true" /> <action android:id="@+id/action_learningLanguageSelectionFragment_to_welcomeFragment" app:destination="@id/welcomeFragment" app:enterAnim="@anim/slide_in_right" app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" app:popUpTo="@id/learningLanguageSelectionFragment" app:popUpToInclusive="true" /> </fragment> <fragment android:id="@+id/welcomeFragment" android:name="com.linguistic.linguistic.framework.presentation.loginscreens.ui.main.WelcomeFragment" android:label="fragment_welcome" tools:layout="@layout/fragment_welcome" /> </navigation>
J'utilise
e: C:\Users\David\StudioProjects\android\app\build\generated\source\navigation-args\debug\com\linguistic\linguistic\framework\presentation\loginscreens\ui\main\NativeLanguageSelectionFragmentDirections.kt: (10, 16): Class 'GoToSelectLearningLangAction' is not abstract and does not implement abstract member public abstract val actionId: Int defined in androidx.navigation.NavDirections e: C:\Users\David\StudioProjects\android\app\build\generated\source\navigation-args\debug\com\linguistic\linguistic\framework\presentation\loginscreens\ui\main\NativeLanguageSelectionFragmentDirections.kt: (13, 12): 'getActionId' overrides nothing e: C:\Users\David\StudioProjects\android\app\build\generated\source\navigation-args\debug\com\linguistic\linguistic\framework\presentation\loginscreens\ui\main\NativeLanguageSelectionFragmentDirections.kt: (15, 12): 'getArguments' overrides nothing
7 Réponses :
J'ai aussi eu ce problème. Jusqu'à ce qu'ils libèrent le correctif. Veuillez essayer ceci:
plugins { id("androidx.navigation.safeargs.kotlin") }
au lieu de
plugins { id("androidx.navigation.safeargs") }
C'était un moyen rapide de travailler sur le même problème pour moi, merci. Y a-t-il des inconvénients de l'utilisation de la version non Kotlin?
Vous ne pouvez pas utiliser les arguments nommés par exemple.
Quelle est la cause de ce problème? ... Quelle est la différence entre ces deux plugins
@Venkataramanan, pour générer du code de langue java adapté aux modules java ou java et kotlin mixtes utilisez Androidx.navigation.safeargs, pour générer du code kotlin adapté aux modules kotlin-unique : //developer.android.com/guide/navigation/navigation-pass-data#safe-args "rel =" nofollow noreferrer "> ici
Depuis la version v2.4.0-alpha02 a été publié, ce bug connu n'est plus présent.
Correction de bugs
Vous avez encore ce bug, un correctif?
Le bogue doit être corrigé par cette version. Si le problème persiste pour vous, placez votre commentaire sur le tracker ou créez un nouveau problème.
J'ai le même bug sur '2.4.0-alpha06' donc il n'est pas entièrement corrigé ou une régression s'est produite
Cela ressemble à un bug de régression puis à Michałtajchert, dans un tel cas, je parie qu'il y a un problème existant sur le tracker.
Quant à mon cas, j'ai dû mettre à jour le plugin Arg Safe également pour me débarrasser du message d'erreur.
[build.gradle] buildscript { ... dependencies { ... classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-alpha04' } [app/build.gradle] dependencies { ... implementation 'androidx.fragment:fragment-ktx:1.4.0-alpha04' api 'androidx.navigation:navigation-fragment-ktx:2.4.0-alpha04' api 'androidx.navigation:navigation-ui-ktx:2.4.0-alpha04' }
Cette solution fonctionne pour moi. Passer de "2.3.5" en "2.4.0-alpha04" Correction de mon erreur. J'ai des avertissements ⚠ lors de la construction, mais fonctionne. Merci
Merci, ça a aidé!
Merci, j'ai juste oublié de mettre à jour le nav_version
de Androidx.navigation: navigation-safe-args-gradle-Plugin: $ NAV_ version
dans le fichier gradle de niveau supérieur à Le même nave_version
qui se trouve dans le fichier gradle du module.
Toutes ces dépendances doivent utiliser la même version - Ex: Au moment de l'écriture, c'est 2.4.0-alpha10
2.4.0-beta02 en ce moment disponible
Mettez simplement à jour la dépendance des args de sécurité à la dernière version (> = 2.4.0-rc01) !:
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-rc01"
Dans mon cas, j'obtiens cette erreur pour mon nouveau module
. J'ai ajouté le safe-args classpath
dans build.gradle (project)
kotlin-dsl:
id 'androidx.navigation.safeargs.kotlin'
sans plonger dans mon module build.gradle. J'ai donc ajouté ceci en haut de build.gradle
:
classpath "navigation-safe-args-gradle-plugin : 2.4.1"
groovy:
id("androidx.navigation.safeargs.kotlin")
Avez-vous essayé d'invalider le cache et de redémarrer?
Oui, c'est sûr, j'ai essayé une autre version Android Studio XD
Cela ressemble à ce problème , mais ce problème n'affecte que la navigation 2.4.0-alpha01. Êtes-vous sûr que vous n'utilisez pas la navigation 2.4.0-alpha01?
Oui, j'utilise Navigation
Androidx.Navigation: Navigation-Compose: 2.4.0-alpha01
pour composer car une partie du projet est écrite en compose AndroidMême après rétrogradation de la dépendance mentionnée dans mon commentaire précédent sur
Androidx.Navigation: Navigation-Compose: 1.0.0-alpha10
, je suis toujours confronté au même problème