遵循谷歌Android官方开发教程时无法解析ActionFirstFragmentToSecondFragment
问题解决方案
这个报错是因为导航组件的Safe Args插件没有成功生成对应的路由类,按以下步骤逐一排查即可解决:
- 检查项目级Gradle配置
确认项目根目录build.gradle的dependencies块正确添加了Safe Args插件依赖,插件版本必须和你项目使用的Android Gradle Plugin版本匹配,示例配置如下:
如果是新版Gradle使用插件中心管理,需要在classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3"settings.gradle的pluginManagement块中补充对应插件配置。 - 检查模块级Gradle配置
打开app模块的build.gradle文件,确认顶部已经应用了Java版的Safe Args插件:
注意不要误加Kotlin版本的id 'androidx.navigation.safeargs'safeargs.kotlin插件,Java项目必须使用不带kotlin后缀的插件 - 检查导航图配置
打开res/navigation目录下的导航配置文件,确认FirstFragment节点下已经正确添加跳转到SecondFragment的action,且action、参数配置和教程要求一致:<fragment android:id="@+id/firstFragment" android:name="你的包名.FirstFragment"> <action android:id="@+id/action_firstFragment_to_secondFragment" app:destination="@id/secondFragment" /> <argument android:name="currentCount" app:argType="integer" /> </fragment> <fragment android:id="@+id/secondFragment" android:name="你的包名.SecondFragment"/> - 触发全量构建
仅同步Gradle不会触发Safe Args的代码生成,需要依次执行菜单栏的Build -> Clean Project,再执行Build -> Rebuild Project,等待构建完成后查看报错是否消失。 - 清除IDE缓存
如果重构后仍报错,依次点击File -> Invalidate Caches...,勾选清除文件系统缓存选项,重启Android Studio后再次重构项目即可。 - 检查导入语句
确认代码中导入的FirstFragmentDirections是你当前项目包下生成的类,而非其他第三方库的同名类。
内容的提问来源于stack exchange,提问作者yusav
相关产品推荐
相关产品推荐

