Неразрешенная ссылка: NavArgs после добавления некоторых аргументов к месту назначения - PullRequest
0 голосов
/ 24 января 2019

Я работаю над небольшим проектом и пытаюсь использовать новые компоненты архитектуры навигации.Когда я пытаюсь добавить некоторые аргументы в пункт назначения, я получаю сообщение об ошибке «Неразрешенная ссылка: NavArgs».

Я следовал этому руководству https://developer.android.com/topic/libraries/architecture/navigation/navigation-pass-data#kotlin и уже добавил

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

в файл gradle моего проекта, а также добавил

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

в файл gradle моего приложения.

Как видно из приведенного выше руководства, я хочуиспользуйте val args: AddKittenFragmentArgs by navArgs(), чтобы получить переданные аргументы.Но navArgs() не распознается.

Также NavArgs в сгенерированном коде не разрешается.

data class MyFragmentArgs(val argOne: String? = "\"\"", val argTwo: String? = "\"\"") : NavArgs

Ответы [ 5 ]

0 голосов
/ 28 июня 2019

Я решил это, выполнив Clean Project из Build меню Android Studio.

Перейти в меню: Build >> Clean Project

0 голосов
/ 07 апреля 2019

Последняя версия 1.0.0, похоже, исправила эту проблему. Просто измените версию зависимости навигации на 1.0.0 и добавьте зависимости -ktx, как указано в других ответах, и все должно работать.

0 голосов
/ 09 февраля 2019

У меня была такая же проблема, но с расширением -ktx.Чистая сборка работала на меня.

0 голосов
/ 11 февраля 2019

У меня была та же проблема, пока я не понял, что зависимости проекта компонента навигации используют версию, отличную от указанной в плагине (в classpath).

т.е. в build.gradle проекта

classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-beta01'

в приложении build.gradle

// Navigation
implementation 'android.arch.navigation:navigation-fragment-ktx:'+ rootProject.navigationVersion
implementation 'android.arch.navigation:navigation-ui-ktx:' + rootProject.navigationVersion

, где навигационная версия была

ext {
   ...
   navigationVersion = "1.0.0-alpha08"
}

lint не сообщает, что при интерполяции зависимости происходит обновление библиотеки.

0 голосов
/ 25 января 2019

Согласно документации на этой самой странице:

При использовании зависимостей -ktx пользователи Kotlin также могут использовать делегат свойства by navArgs () для доступа к аргументам.

Убедитесь, что вы следуете документации Добавление компонентов и используете зависимость navigation-fragment-ktx:

implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha11"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...