我试图将嵌套图添加到我的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="..."/>
问题是如何消除错误并成功添加子图。
答案 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'
}