【问题标题】:FragmentContainerView and app:navGraph - This navigation graph is not referenced to any layout filesFragmentContainerView 和 app:navGraph - 此导航图未引用任何布局文件
【发布时间】:2020-06-13 15:09:04
【问题描述】:

为了防止在升级到最新片段(1.2.2 版本)和导航(2.2.1 版本)后出现 Lint 警告(将 fragment 替换为 FragmentContainerView),我将片段替换为 FragmentContainerView

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

但在那之后我在@navigation/nav_graph 中发现了错误 - 此导航图未引用任何布局文件

一切正常,但那个错误很烦人。

【问题讨论】:

标签: android android-navigation android-architecture-navigation android-navigation-graph


【解决方案1】:

有相同的“错误”警告,似乎它将在未来的版本中修复。同时,正如 Android Studio 建议的那样,可以使用以下命令安全地忽略警告:

<navigation
    ...
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="UnusedNavigation" />

【讨论】:

    【解决方案2】:

    我有同样的错误,但是该应用程序可以正常编译并且可以正常工作。我想我们必须等待下一个稳定版本中的修复。

    【讨论】:

      【解决方案3】:

      您需要在 build.gradle(app) 中更新到最新版本的 navigation-fragment-ktx

      def nav_version = "2.3.0-alpha03"
      implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
      implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
      

      【讨论】:

        【解决方案4】:

        这可能是我理解错了,但如果一切正常,这可能是 Android Studio 需要一些缓存清除和重新启动的典型案例。甚至可以从您的项目中手动删除构建文件夹。

        【讨论】:

        • 不,我尝试了 clean/sync gradle/refresh/invalidate 等。只有当我将 FragmentContainerView 恢复为 Fragment 时,错误才会消失。看起来经典的谷歌因“稳定”库而失败:) 现在,我只是用工具抑制错误:ignore="UnusedNavigation"
        猜你喜欢
        • 1970-01-01
        • 2019-10-17
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 2018-01-13
        • 2013-04-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多