gpt4 book ai didi

android - 导航 Lint 错误 : This navigation graph is not referenced from any layout files

转载 作者:行者123 更新时间:2023-12-02 18:44:53 25 4
gpt4 key购买 nike

我的应用程序中有 2 个模块(应用程序模块和启动模块)。我正在尝试利用 <include>标签,努力使 FTUE正如文档所建议的那样,它是独立的,不是主导航图的一部分。

我的主导航图在应用程序模块中定义,如下所示:

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph"
app:startDestination="@id/home">

<include app:graph="@navigation/splash_nav_graph"/>

<fragment
android:id="@+id/home"
android:name="com.example.Home"
android:label="fragment_home"
tools:layout="@layout/fragment_home">
<action
android:id="@+id/action_home_to_splash_nav_graph"
app:destination="@id/splash_nav_graph"/>
</fragment>

</navigation>

splash_nav_graph在splash模块中定义(app模块显然对其有依赖):

<?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"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/splash_nav_graph"
app:startDestination="@id/splashFragment">

<fragment
android:id="@+id/splashFragment"
android:name="com.example.splash.SplashFragment"
android:label="example"
tools:layout="@layout/fragment_splash">
<action
android:id="@+id/action_splashFragment_to_signInFragment"
app:destination="@id/signInFragment"
app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"/>
</fragment>

<fragment
android:id="@+id/signInFragment"
android:name="com.example.splash.signin.ui.SignInFragment"
android:label="fragment_sign_in"
tools:layout="@layout/fragment_sign_in">
<action
android:id="@+id/action_signInFragment_pop"
app:popUpTo="@id/splash_nav_graph"/>
</fragment>
</navigation>

最后,这是导航图与应用模块中的 NavHostFragment 绑定(bind)的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mainContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"
>

<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph"
/>

</LinearLayout>

这将运行并浏览流程(主页 ->启动 ->登录 ->主页)产生预期的行为。但是,splash_nav_graph 的顶部出现以下 lint 错误:

This navigation graph is not referenced from any layout files (expected to find it in at least one layout file with a NavHostFragment with app:navGraph="@navigation/splash_nav_graph" attribute). more... (⌘F1)

lint 错误所说的是真的(我没有另一个具有 NavHostFragmentapp:navGraph="@navigation/splash_nav_graph" ),但是:

  • 我将它包含到另一个图表中并且它正在工作(认为这是某种传递性的并且 lint 无法检测到)
  • 我不知道在哪里添加另一个NavHostFragment因为我的应用程序模块中只有一个 Activity。

我真的需要添加另一个NavHostFragment吗?某处或者这是 lint 中的错误?

最佳答案

看起来这个问题将在 AS 3.6 中修复

关于android - 导航 Lint 错误 : This navigation graph is not referenced from any layout files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56403655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com