喷气背包导航 - 标记中缺少'graph'属性<include>



我开始使用导航组件,我的层次结构是:

我有一个名为nav_graph的布局,它是:

<?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/featureHomeNavGraph">
<include
android:id="@+id/featureHomeNavGraph"
app:graphResName="feature_home_nav_graph"
app:moduleName="feature_home" />
<include
android:id="@+id/featureFavouritesNavGraph"
app:graphResName="feature_favourites_nav_graph"
app:moduleName="feature_favourites" />
...
</navigation>

然后我创建了布局为:

feature_home_nav_graph.xml

<?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:moduleName="feature_home"
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name="HomeFragment"
android:label="HomeFragment"
app:moduleName="feature_home" />
</navigation>

feature_favourites_nav_graph.xml

<?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:moduleName="feature_favourites"
app:startDestination="@id/favouritesFragment">
<fragment
android:id="@+id/favouritesFragment"
android:name="FavouritesFragment"
android:label="FavouritesFragment"
app:moduleName="feature_favourites" />
</navigation>

但我在运行应用时遇到了这个错误

错误:标记中缺少"graph"属性。

这个也是

Navigation XML文档元素必须包含app:graph属性,其值以@Navigation/开头。

我缺少什么?

问题似乎出在缺少app:graph属性的include上。应该是:

<include
app:graph="@id/featureHomeNavGraph"
... />

等等。参考。

最新更新