未解决的参考:在向目标添加一些参数后的NavArgs

问题描述 投票:3回答:4

我正在开发一个小项目并尝试使用新的导航架构组件。当我试图向目的地添加一些参数时,我得到了“Unresolved reference: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
android navigation android-architecture-components android-safe-args
4个回答
3
投票

根据该页面上的文档:

使用-ktx依赖项时,Kotlin用户还可以使用by navArgs()属性委托来访问参数。

确保您遵循Adding Components documentation并使用navigation-fragment-ktx依赖:

implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha11"

1
投票

我遇到了同样的问题,直到我意识到导航组件的项目依赖项使用的版本与插件指定的版本不同(在类路径中)。

即在项目的build.gradle中

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

在app build.gradle中

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

navigationVersion的地方

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

lint不会告诉您插入依赖项时库的更新。


0
投票

我有同样的问题,但有-ktx扩展。干净的构建对我有用。


0
投票

最新版本1.0.0似乎解决了这个问题。只需将导航依赖性版本更改为1.0.0,同时添加其他答案中提到的-ktx依赖项,一切都应该有效。


0
投票

我通过从Android Studio的Clean Project菜单中执行Build来解决这个问题。

转到菜单:Build >> Clean Project

© www.soinside.com 2019 - 2024. All rights reserved.