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

Android双导航图下同名异包Fragment跳转出现Missing required view异常求助

问题根因

  1. 第一个导航图(dashboard_nav_graph)的跳转配置完全写反
    你配置的两个action的目的地和action语义完全不匹配:
  • id为action_dashboardFragment_to_equityFragment的action,实际指向的是dashboardCashDistributionFragment
  • id为action_dashboardFragment_to_cashDistributionFragment的action,实际指向的是dashboardEquityFragment
    这会导致你调用跳转逻辑时,实际打开的是目标相反的Fragment,自然会出现控件ID找不到的异常。
  1. 重名布局资源覆盖
    Android应用的资源文件是全局唯一的,不会按Java/Kotlin包名区分。你两个不同业务模块下的EquityFragment、CashDistributionFragment,使用的布局文件名完全一致(都叫equity_fragment、cash_distribution_fragment),编译时后打包的模块会覆盖先打包模块的同命名布局,导致其中一个模块的Fragment加载到错误的布局,找不到对应ID的控件。

解决方案

  • 修正第一个导航图的错误配置,将两个action的destination替换为正确的目标:
<action
    android:id="@+id/action_dashboardFragment_to_equityFragment"
    app:destination="@id/dashboardEquityFragment" />
<action
    android:id="@+id/action_dashboardFragment_to_cashDistributionFragment"
    app:destination="@id/dashboardCashDistributionFragment" />
  • 给不同模块的布局文件加上模块前缀避免重名:
    • dashboard模块的布局重命名为dashboard_equity_fragment.xml、dashboard_cash_distribution_fragment.xml
    • more模块的布局重命名为more_equity_fragment.xml、more_cash_distribution_fragment.xml
      重命名完成后,同步修改导航图中对应fragment节点的tools:layout属性,以及Fragment类中onCreateView加载的布局文件名。
  • 清理项目缓存后重新编译:执行Android Studio的Build -> Clean Project,再执行Rebuild Project,清除之前生成的错误Binding类缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:15:01