You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android NavController导航报错:当前目标找不到指定action/destination

问题

App内其他Fragment使用NavController导航功能正常,但新增的FragmentA跳转至已存在的FragmentB时失败。已有多个Fragment可通过findNavController().navigate(directions)成功跳转至FragmentB,我为FragmentA创建了专属导航文件:

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/fragmentA_nav"
    app:startDestination="@id/fragmentA">

    <fragment
        android:id="@+id/fragmentA"
        android:name="app.packageA.FragmentA"
        android:label="FragmentA" >
        <action
            android:id="@+id/action_fragmentA_to_fragmentB"
            app:destination="@id/fragmentB" />
    </fragment>
<fragment
    android:id="@+id/fragmentB" android:name="app.packageB.FragmentB"
    android:label="fragmentB" />
</navigation>

调用findNavController().navigate(FragmentADirections.actionFragmentAToFragmentB())时,已确认findNavController().currentDestination?.id与R.id.FragmentA一致,但仍出现以下错误:

java.lang.IllegalArgumentException: Navigation action/destination .debug:id/action_fragmentA_to_fragmentB cannot be found from the current destination 
Destination(app.debug:id/fragmentA) label=FragmentA class=app.package.FragmentA

已确认无重复调用导航的情况,使用Android Studio图形设计器创建导航文件也会出现相同错误,仅新增的FragmentA存在该问题。

排查与解决方案
  • 确认导航图层级关系:如果FragmentA是从主导航图加载的,不要单独使用fragmentA_nav作为独立导航图。NavController的导航栈隶属于主导航图,无法识别独立导航图中定义的action。正确做法是将fragmentA_nav通过<include>标签引入主导航图,或者直接在主导航图中给FragmentA添加跳转至FragmentB的action。
  • 避免重复定义FragmentB:不要在fragmentA_nav中重复声明FragmentB,直接引用主导航图中已存在的FragmentB的ID(确保主导航图中FragmentB的ID与app:destination="@id/fragmentB"一致)。
  • 清理重建项目:APT生成的FragmentADirections类可能存在缓存问题,执行Build > Clean Project后再执行Build > Rebuild Project,确保生成的导航类与最新的导航文件同步。
  • 检查资源ID大小写:导航文件中FragmentA的ID是@+id/fragmentA(全小写),但代码中判断的是R.id.FragmentA(首字母大写),Android资源ID区分大小写,这里大概率是笔误,应修正为R.id.fragmentA。

内容的提问来源于stack exchange,提问作者krltos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:35:02