清单合并失败:找不到参考的导航文件

时间:2019-07-09 03:29:20

标签: android kotlin navigation android-architecture-components

我试图将嵌套图添加到我的Navigation XML文件中。主图位于app模块中,而嵌套图位于从属库模块中。我正在添加带有<include>标签的子图。当我这样做时,我的构建因清单合并错误而失败。我在应用的清单中将主图引用为<nav-graph>标签以支持深度链接。我确实在项目中进行搜索,但在include标签中找不到对子图的任何引用。

  

清单合并失败:引用的导航文件带有   navigationXmlId =未找到browser_nav_subgraph

以下是一些代码:

主图:

<?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/nav_graph" app:startDestination="@id/login">

    <include app:graph="@navigation/browse_nav_subgraph" />
//other fragments
</navigation>

browse_nav_subgraph:

<?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"
        app:startDestination="@id/browseFragment"
        android:id="@+id/browse_subgraph">

    <fragment android:id="@+id/browseFragment" android:name="..."
              android:label="BrowseFragment"/>
</navigation>

应用的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <application>
        <activity>
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <nav-graph android:value="@navigation/nav_graph"/>

        </activity>

    </application>

</manifest>

浏览模块的清单:

<manifest package="..."/>

问题是如何消除错误并成功添加子图。

2 个答案:

答案 0 :(得分:0)

https://issuetracker.google.com/issues/140856013 此修复程序将在3.7 Canary 2和3.6 Beta 2

中进行。

答案 1 :(得分:0)

此问题已在以上gradle插件3.5中修复。只需像下面那样更新gradle插件即可。

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
    }