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

使用Navigation Components遇深层链接多目标问题,清单合并失败

解决Navigation Components深层链接重复导致的Manifest合并失败问题

核心原因

导航图中存在两个或多个Destination配置了完全一致的深层链接URL/规则,Navigation插件自动生成Manifest的<intent-filter>时,重复的规则触发了合并冲突。

修复步骤

  • 检查所有导航图的深层链接配置
    打开所有相关的nav_graph.xml文件,逐个核对每个<deepLink>标签的app:uri属性值,找出重复的链接(比如两个Fragment都配置了app:uri="https://yourapp.com/detail")。

  • 调整重复的深层链接规则

    • 若为误配置:直接删除其中一个多余的深层链接。
    • 若业务需要多个页面响应同一链接:通过动态深层链接处理实现,不要在导航图中重复配置。具体做法:
      1. 仅在导航图中保留一个主Destination的深层链接。
      2. 在该Destination对应的页面(如Fragment)中,获取深层链接参数,根据参数动态导航到其他目标页面。
      3. 示例代码(Kotlin):
        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
            val deepLinkUri = arguments?.getParcelable<Uri>(NavController.KEY_DEEP_LINK_URI)
            deepLinkUri?.let { uri ->
                val targetId = when(uri.getQueryParameter("type")) {
                    "A" -> R.id.fragment_a
                    "B" -> R.id.fragment_b
                    else -> R.id.default_fragment
                }
                findNavController().navigate(targetId)
            }
        }
        
  • 彻底清理并重新构建
    执行Build > Clean Project,再执行Build > Rebuild Project;若仍有问题,手动删除项目根目录和模块下的build文件夹后重新构建。

  • 验证Manifest合并结果
    修复后,打开Tools > App Inspection > Merged Manifest,检查<intent-filter>是否仅包含一组对应深层链接的规则,确认无冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:32:01