NavHostFragment 无法从 XML 访问

2024-02-05

我想尝试新的导航库。关注后本指南 https://developer.android.com/topic/libraries/architecture/navigation/navigation-implementing我在运行时遇到错误:

Caused by: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment androidx.navigation.fragment.NavHostFragment: make sure class name exists, is public, and has an empty constructor that is public

在资源文件中activity_home.xml。这个文件非常简单:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    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/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.home.HomeActivity">

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

</FrameLayout>

我查看了源代码NavHostFragment我注意到它使用android.support.v4.app.Fragment虽然我的整个应用程序使用androidx.fragment.app.Fragment.

我不相信这是问题所在,但我在下面包含了一些依赖项:

// AndroidX
implementation     "androidx.appcompat:appcompat:$appCompatVersion"
implementation     "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion"
implementation     "androidx.lifecycle:lifecycle-extensions:$lifecycleVersion"
implementation     "androidx.recyclerview:recyclerview:$recyclerViewVersion"
implementation     "androidx.room:room-runtime:$roomVersion"
implementation     "androidx.room:room-rxjava2:$roomVersion"

kapt               "androidx.room:room-compiler:$roomVersion"

// Navigation
implementation     "android.arch.navigation:navigation-fragment-ktx:$navigationVersion"
implementation     "android.arch.navigation:navigation-ui-ktx:$navigationVersion"

正如您所看到的,我使用的是 AndroidX 中的库(导航除外),因为它可能尚未迁移。我在 Google 上唯一能找到的地方androidx.navigation is here https://developer.android.com/jetpack/docs/getting-started。不幸的是 Gradle 无法下载它。

Edit

我的内部还启用了 jetifier 工具gradle.properties.

android.enableJetifier=true
android.useAndroidX=true

Update

它已在 Android Studio 3.2 Canary 17 中修复,如中所述这个答案 https://stackoverflow.com/a/50385411/4386668。不要忘记使缓存失效并重新启动以删除代码中的警告。


我也有这个头痛,因为我正在关注 Android Kotlin 基础教程:https://codelabs.developers.google.com/codelabs/kotlin-android-training-add-navigation/index.html#3 https://codelabs.developers.google.com/codelabs/kotlin-android-training-add-navigation/index.html#3这是适合我的代码

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

显然教程还没有更新。另外在依赖项中需要更新库..

....    
implementation "androidx.navigation:navigation-fragment:2.3.0"
implementation "androidx.navigation:navigation-ui:2.3.0"

我使用的是Android Studio 4.0。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NavHostFragment 无法从 XML 访问 的相关文章

  • OpenAI Gymnasium,有没有算法支持的库?

    OpenAI 发布了一个名为 Gymnasium 的新库 它应该取代 Gym 库 有许多库都实现了支持健身房环境的强化学习算法 但是 Gymnasium 的界面略有变化 有没有支持 Gymnasium 的算法库 我尝试了 CleanRL K
  • 将 cron 作业配置为在 Jenkins 上每 15 分钟运行一次

    如何在 Jenkins 上每 15 分钟运行一次 cron 作业 这是我尝试过的 在 Jenkins 上 我使用以下 cron 语法设置了每 15 分钟运行一次的作业 14 但该作业每小时执行一次 而不是 15 分钟 我收到有关 cron
  • iOS HTTP 请求在后台运行

    当应用程序处于后台时 可以向 PHP 服务器发出 HTTP 异步请求吗 该应用程序是基于位置的应用程序 应收集当前位置并每 5 或其他值 分钟将坐标发送到服务器 即使应用程序处于后台 我也可以将 http 帖子发送到服务器吗 我读到了很多关
  • Thymeleaf Spring 安全集成 sec:授权不起作用

    我正在使用带有 Spring security 的 Thymeleaf 模板引擎 我还使用 Thymeleaf Spring Security 集成模块来使用 sec authorize 功能 但由于某种原因它不起作用 我没有收到任何错误
  • 类型铸造自我

    以下自我转换对 ClassA 有何作用 这种种姓可以让你进入ClassA吗 A h类 interface ClassA NSObject NSUInteger someNumber ClassB classB property nonato
  • Spring - 使用存储过程时使用 simplejdbccall 进行批量更新

    我正在使用 spring jdbc 模板 使用存储过程创建记录 public Long create City obj SimpleJdbcCall jdbcCall new SimpleJdbcCall getJdbcTemplate g
  • 你遇到过哪些 git 陷阱?

    我遇到的最糟糕的情况是 git 子模块 我在 github 上有一个项目的子模块 该项目无人维护 我想提交补丁 但无法提交 所以我分叉了 现在子模块指向原始库 而我需要它指向 fork 因此 我删除了旧的子模块 并将其替换为同一提交中新项目
  • 将文件附加到 PHPMailer

    我目前正在开发一个项目 该项目将文件作为 blob 存储在数据库中 我需要将文件附加到电子邮件并通过 PHPMailer 发送出去 我熟悉 mail gt addAttachment 但是 这个函数似乎只接受文件路径 而我没有 我想知道是否
  • Gitflow错误无法初始化

    我已经将 gitflow 安装在我的 github 项目所在的目录中 但是 当我尝试使用命令 启动时git flow init 我收到以下错误消息 git flow init C cygwin64 usr local bin gitflow
  • 使用Python的timeit获取“全局名称'foo'未定义”

    我想知道执行一条Python语句需要多少时间 所以我上网查了一下 发现标准库提供了一个名为timeit http docs python org library timeit html旨在做到这一点 import timeit def fo
  • 从哪里开始阅读 SQLite 源代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想了解sqlite是如何实现的 并且 想阅读源代码 我已经下载了源代码 我应该开始查看代码的哪一部分 SQLite文档页 http
  • 重构后如何保留 terraform 资源以使用 for_each?

    目前我正在对我们的基础设施进行小型重构 我的项目的当前版本类似于以下内容 我正在尝试使用 for each 来重用变量 resource google cloud scheduler job job name Create All Doss
  • 如何使用 winrar 提取与 zip 文件同名的文件夹中的所有 zip 文件?

    我需要迭代一个文件夹 对于每个 zip 文件 我需要使用它的名称来提取它 也就是说 如果它是 test zip 那么它应该解压到 test 文件夹 同样 它应该迭代我的文件夹及其子文件夹并提取内容 我编写了下面的代码 但它没有使用 zip
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR
  • 当不存在循环时,terraform destroy 会产生循环错误

    地形版本 Terraform v0 12 1 地形配置文件 main tf在我的根提供程序中 provider google module organisation info source modules organisation info
  • 安装 RVM 时出现问题

    我已按照 rvm 网站上的说明执行了命令 但似乎不起作用 从 git 存储库获取代码运行顺利 但是当我尝试使用时 rvm notes Error usr local bin rvm line 73 home cody rvm scripts
  • 获取长度为 n 的所有(n-选择-k)组合

    我怎样才能获得长度的所有组合 按顺序 n从数字列表中 例如 给定列表 1 2 3 4 并设置n 3 我怎样才能得到这些结果 1 2 3 1 2 4 1 3 4 2 3 4 For combinations of all possible l
  • 如何在 iOS 11 上的 Swift 中获取 FLAC 文件元数据?

    我需要获取 FLAC 文件的元数据 我尝试了以下代码 let item AVPlayerItem url URL fileURLWithPath path let commonMetadata item asset commonMetada
  • 每组最大 n 个 SQL 查询的高性能方法

    我正在尝试构建一个基础设施 以便根据需要快速运行回归 从包含我们网络服务器上所有历史活动的数据库中提取 apache 请求 为了通过确保我们仍然回归来自较小客户的请求来提高覆盖范围 我想通过为每个客户检索最多 n 个 为了这个问题 假设 1
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • Windows 脚本主机的 DotNet 版本

    早上好 我在一家小商店工作 只有我们两个人 目前我们管理着更多我们想要的 vbs 脚本 我们希望管理零个 这些脚本的好处之一是可以快速进行更改 根据需要 并返回到我们的日常工作 这一切都很好 直到我们决定需要对工作进行重大更改 然后使用 P
  • 现在“English”或“en”是首选的 .lproj 文件夹名称吗?

    在 Apple 的文档和示例代码中 我看到 lproj 文件夹既以语言名称 例如 English 命名 又以 ISO 639 代码 例如 en 命名 明确的命名要求是什么 我一直没能找到它 如果没有 每种名称的优点和缺点是什么 ISO 63
  • 打开Emacs命令的定义

    是否可以在 emacs elisp 文件中打开带有命令定义的文件 看看它是如何定义的 是的 你可以打电话M x find function 有些函数是用 C 实现的 为了能够找到 C 函数 您必须下载 C 源代码 如果您还没有这样做 并将以
  • 使用未声明的类型“JSON”和使用未解析的标识符“JSONEncoding”

    我的 Xcode 8 2 项目 swift 3 中需要 JSON 或 JSONEncoding 的每个文件都出现上述错误 我的 pod 文件中已经有 SwiftyJSON 并将其导入到这些文件中 我已经将其添加到依赖项和链接列表中 这是导入
  • 将文件中的键/值参数读取到 shell 脚本中

    我的脚本已经差不多可以运行了 这样做的目的是从文件中获取定义的值 然后在运行时将这些值填充到 shell 脚本中 请看看我这里有什么 第一个文件 ab sh bin bash USER TYPE 1 IDENTIFY USER TYPE T
  • Google 地图:通过地址显示地图

    我有这个代码在页面上显示地图 var map new GMap2 get gmap var latLng new GLatLng lat lng map setCenter latLng 11 map addControl new GLar
  • 在 VS Code 中,我收到此错误“无法加载模块”。尝试从 package.json 加载 prettier'

    当我使用 VS Code 并打开项目时 我在右下角收到此通知 Failed to load module If you have prettier or plugins referenced in package json ensure y
  • 无法解析符号 NameValuePair

    在我的项目中 我遇到了一个错误 检索项目的父级时出错 找不到与该项目匹配的资源 给定名称 android TextAppearance Material Widget Button Inverse 然后我尝试使用以下方法修复它 compil
  • WPF - 带有文本和图像的按钮

    无法在 WPF 应用程序中制作带有图像和文本的按钮 我的代码是这样的
  • 邮件中的图像附件..在android中如何?

    我可以使用意图选择图像及其路径 使用图像的该路径 我必须将该图像设置为邮件正文内容的附件 在安卓上怎么可能 Intent emailIntent new Intent android content Intent ACTION SEND e
  • 控制器必须返回一个响应,给出数组

    我正在尝试跟随威尔 杜兰德的教程 http williamdurand fr 2012 08 02 rest apis with symfony2 the right way 关于如何使用 Symfony2 设置良好的 REST API 然
  • 如何像WEBrick一样在Rails控制台中显示SQL语句?

    Rails WEBrick 显示任何 ActiveRecord 活动的原始 SQL 语句 如何在控制台中启用它 为此 您必须启用记录器 您可以按如下方式执行此操作 打开 Rails 控制台 ActiveRecord Base connect
  • Swashbuckle 5 和 multipart/form-data 帮助页面

    我一直在尝试让 Swashbuckle 5 使用 multipart form data 参数为带有 Post 请求的 ApiController 生成完整的帮助页面 浏览器中会出现该操作的帮助页面 但不包含有关表单中传递的参数的信息 我创
  • var express = require('express') - 无法读取未定义的属性“prototype”

    我是 Express 新手 如果这是一个简单的问题 请原谅我 我有一个 React 项目 我正在尝试向其中添加 Express 我添加了一个以下行开头的 js 文件来导入express var express require express
  • 您可以通过 API 添加亚马逊购物车的地址吗?

    我在产品广告 API 中看不到它参考 http docs aws amazon com AWSECommerceService latest DG CartCreate html但我想知道是否可以动态 自动设置亚马逊购物车的送货账单地址 以
  • 将异步生成器聚合到元组

    在尝试聚合异步生成器的结果时 如下所示 async def result tuple async def result generator some await things happening in here yield 1 yield
  • OpenSSL、RVM、Brew、冲突错误

    当我跑步时酿造医生在终端中 我收到以下错误 Warning Some keg only formula are linked into the Cellar You may wish to brew unlink these brews o
  • pandas 重命名索引值

    我在 pandas python 中有以下数据框 B X Y A alpha 3 5 5 beta 9 9 11 我想将 alpha 更改为另一个名称 例如 mu 我应该怎么办 Use rename http pandas pydata o
  • 更深入地理解Python对象机制

    我想更好地理解 Python 3 x 数据模型 但我没有找到 Python 对象行为的完整和精确的解释 我正在寻找参考资料 如果我下面展示的每个案例都可以链接到 Python API 参考资料或 PEP 或任何其他有价值的资料 那就太好了
  • NavHostFragment 无法从 XML 访问

    我想尝试新的导航库 关注后本指南 https developer android com topic libraries architecture navigation navigation implementing我在运行时遇到错误 Ca