Navigation Component创建Fragment间Action时遇Unresolved Reference R错误
检查导航图XML的语法错误
多数情况是导航图里Action的配置出错,比如ID拼写错误、目标Fragment的ID引用无效,或者XML标签未闭合。打开res/navigation/nav_graph.xml,仔细核对Action的参数:<action android:id="@+id/action_fragmentA_to_fragmentB" app:destination="@id/fragmentB" />确保目标Fragment的ID已在导航图中定义,且无拼写错误。
清理并重建项目
Android Studio的缓存可能导致R文件未及时更新,执行以下操作:- 点击菜单栏
Build->Clean Project - 再点击
Build->Rebuild Project - 若仍无效,尝试
File->Invalidate Caches...,勾选Invalidate and Restart重启AS
- 点击菜单栏
核对Navigation依赖配置
确认build.gradle(Module level)里的Navigation依赖版本正确且同步:dependencies { def nav_version = "2.7.7" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" }同步Gradle后重新构建项目。
检查Fragment的类路径匹配
导航图中Fragment的android:name属性必须和实际类的包名、类名完全一致,比如:<fragment android:id="@+id/fragmentB" android:name="com.example.myapp.ui.FragmentB" android:label="Fragment B" />避免包名、类名的大小写或拼写错误。
修正R文件导入
打开报错的Fragment或Activity文件,检查顶部导入语句是否误导入了android.R,替换为你项目自身的R文件(比如com.example.myapp.R)。重新生成Safe Args代码
如果是Safe Args自动生成的代码引发问题,删除build/generated/source/navigation-args目录下的内容,再重新构建项目,让AS重新生成正确的Args类。
内容的提问来源于stack exchange,提问作者andbal23
相关产品推荐
相关产品推荐

