Android 未解析引用:向目标添加一些参数后的导航参数
我正在做一个小项目,尝试使用新的导航架构组件。当我试图向目标添加一些参数时,我得到了“未解析引用:NavArgs”错误 我遵循这个指南 并且已经添加了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文件 如上面的指南所示,我想使用
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'
}