Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unresolved reference: NavArgs after added some arguments to destination

I'm working on a small project and trying to use the new navigation architecture components. When i'm trying to add some arguments to a destination i got "Unresolved reference: NavArgs" error.

I followed this guide https://developer.android.com/topic/libraries/architecture/navigation/navigation-pass-data#kotlin and already added

classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha11"

to my project gradle file and also added

apply plugin: 'androidx.navigation.safeargs.kotlin'

to my app gradle file.

As seen in the guide above i want to use val args: AddKittenFragmentArgs by navArgs() to get the passed arguments. But navArgs() isn't recognized.

Also NavArgs in the generated code isn't resolved.

data class MyFragmentArgs(val argOne: String? = "\"\"", val argTwo: String? = "\"\"") : NavArgs
like image 274
Thomas Meinhart Avatar asked Jan 24 '19 19:01

Thomas Meinhart


2 Answers

As per the documentation on that very page:

When using the -ktx dependencies, Kotlin users can also use the by navArgs() property delegate to access arguments.

Make sure you are following the Adding Components documentation and using the navigation-fragment-ktx dependency:

implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha11"
like image 57
ianhanniballake Avatar answered Nov 01 '22 05:11

ianhanniballake


In my case i typed the argument Name starting by a capital letter

        <argument
            android:name="MyArgument" // changed it to myArgument fix the problem
            app:argType="string"
            app:nullable="false" />
like image 16
Hussien Fahmy Avatar answered Nov 01 '22 05:11

Hussien Fahmy