Android 未解析引用:向目标添加一些参数后的导航参数

Android 未解析引用:向目标添加一些参数后的导航参数,android,navigation,android-architecture-components,android-safe-args,Android,Navigation,Android Architecture Components,Android Safe Args,我正在做一个小项目,尝试使用新的导航架构组件。当我试图向目标添加一些参数时,我得到了“未解析引用:NavArgs”错误 我遵循这个指南 并且已经添加了 classpath“android.arch.navigation:navigation-safe-args-gradle插件:1.0.0-alpha11” 到我的项目gradle文件中,并添加了 apply插件:“androidx.navigation.safeargs.kotlin” 到我的应用程序gradle文件 如上面的指南所示,我想使用

我正在做一个小项目,尝试使用新的导航架构组件。当我试图向目标添加一些参数时,我得到了“未解析引用:NavArgs”错误

我遵循这个指南 并且已经添加了

classpath“android.arch.navigation:navigation-safe-args-gradle插件:1.0.0-alpha11”

到我的项目gradle文件中,并添加了

apply插件:“androidx.navigation.safeargs.kotlin”

到我的应用程序gradle文件

如上面的指南所示,我想使用
val args:AddKittenFragmentArgs by navArgs()
来获取传递的参数。但是无法识别
navArgs()

生成的代码中的
NavArgs
也未解析

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

根据该页上的文档:

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

确保遵循并使用
导航片段ktx
依赖项:

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

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

i、 e.在项目的build.gradle中

classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-beta01'
// Navigation
implementation 'android.arch.navigation:navigation-fragment-ktx:'+ rootProject.navigationVersion
implementation 'android.arch.navigation:navigation-ui-ktx:' + rootProject.navigationVersion
在应用程序中build.gradle

classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-beta01'
// 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不会告诉您在插入依赖项时有库的更新。

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

我通过从Android Studio的
构建
菜单执行
清理项目
解决了这个问题


进入菜单:
Build
>
cleanproject

如果您想传递
String
您的argType应该是
String
,而不是String,仅供参考

 app:argType="string"

我也有同样的问题,我通过以下步骤解决了这个问题

  • Build->Clean项目
  • nav_graph.xml
    文件中删除参数
  • 创建新参数
  • Build->Rebuild项目
  • 提出论点
  • 在FragmentDest上使用此参数

  • 在我的情况下,我需要在build.gradle(应用程序)中添加它


    我还准备好了上面提到的所有解决方案,认为这解决了我的问题。这是OP的问题吗?@IgorGanapolsky不,但这可能是其他人的问题
    kotlinOptions {
        jvmTarget = '1.8'
    }