当 Android 的 PreferenceActivity 的 isValidFragment() 被调用时?

2024-03-24

对于我正在开发的某些应用程序,对于 API 级别 19 的设备,我遇到了异常

Caused by: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com... has not checked if fragment com...$. is valid.

然后,我发现对于那些应用程序android框架protected boolean isValidFragment(String fragmentName)正在被调用,其中有代码

if (getApplicationInfo().targetSdkVersion  >= android.os.Build.VERSION_CODES.KITKAT) {
        throw new RuntimeException(
                "Subclasses of PreferenceActivity must override isValidFragment(String)"
                + " to verify that the Fragment class is valid! " + this.getClass().getName()
                + " has not checked if fragment " + fragmentName + " is valid.");
    } else {
        return true;
}

然后我尝试复制错误

我的示例应用程序的代码来自首选项活动示例 http://viralpatel.net/blogs/android-preferences-activity-example/并添加了一行<uses-sdk android:targetSdkVersion="19" />在清单中。

但奇怪的是,我没有收到错误(isValidFragment() 在这种情况下没有被调用)。

所以请告诉我如何在我的示例应用程序中复制该错误。


你的问题的答案就在这篇文章里。这是一个重复的问题:

isValidFragment Android API 19 https://stackoverflow.com/questions/19973034/isvalidfragment-android-api-19

- 更新 -

解决方案如下:

基本上,无论哪个 Activity 在上面的错误中使用您的片段“com...$”,您都必须使用下面的修复程序来更新它。对于任何使用片段的活动,您应该使用此修复更新项目中的所有活动。

文档指出:

protected boolean isValidFragment (String fragmentName)

Added in API level 19

Subclasses should override this method and verify that the given fragment is a 
valid type to be attached to this activity. The default implementation returns 
true for apps built for android:targetSdkVersion older than KITKAT. For later 
versions, it will throw an exception.

您可以通过覆盖 Activity/FragmentActivity 的此方法来修复此错误:

@Override
protected boolean isValidFragment (String fragmentName) {
  return [YOUR_FRAGMENT_NAME_HERE].class.getName().equals(fragmentName);
}

如果您很懒,只是想在将所有片段编码到此方法中之前测试此修复是否有效,您可以简单地返回 true 而不进行任何检查:

@Override
protected boolean isValidFragment (String fragmentName) {
  return true;
}

我在模拟器上测试时遇到了同样的问题,这就是解决方案。

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

当 Android 的 PreferenceActivity 的 isValidFragment() 被调用时? 的相关文章

  • Cordova 插件包括 Android 库 (Gradle)

    我想包括这个 Androidlibrary https github com 50ButtonsEach fliclib android在 Cordova 插件中 该库本身由 Gradle 管理 如 Github 链接所示 图书馆的开发者只
  • 使用选项卡式活动中的捆绑包将值从活动传递到片段

    我是一个java文盲 但仍在尝试开发一个供我个人使用的应用程序 我从 android studio 的 Tabbed Activity 开始 除了 MainActivity 中的一个片段和一个包之外 大部分没有改变 这是我的代码 主要活动
  • Firebase 查询 Or'ing whereEqualTo 以获得可能值的列表

    我见过之前针对早期版本的 Firebase 提出过这个问题 https stackoverflow com questions 26700924 query based on multiple where clauses in fireba
  • 如何通过 Android 中的 Google Fit 集成获取用户信息

    我正在将 Google Fit 应用程序集成到 Android 应用程序中 以使用 SENSORS API 和 HISTORY API 跟踪健身数据 获取步数 如何使用该 API 获取用户信息 电子邮件或用户 ID 对你来说完美的例子 这可
  • 启动时的 Android pin 活动

    我有一个应用程序 它将自身注册为默认启动器 并在启动时自动固定自身 安装应用程序时这一切都正常 它会自行固定 并且只有后退按钮可见 问题是 当设备首次启动时 它无法正确固定 我多次看到一系列 屏幕固定 和 屏幕取消固定 的 toast 主页
  • Android:从 https url 获取响应

    问候 我正在开发一个 Android 应用程序 需要通过 https 打开一个 url 带有 POST 参数 并获取响应 我有一个自签名证书 这让情况更加复杂 我还需要接受cookies 有人知道从哪里开始吗 提前谢谢了 Android 附
  • 通过 id 查找 视图?

    如果视图是 id 是否可以通过 id 查找视图
  • Android 崩溃报告库(Froyo 之前)[重复]

    这个问题在这里已经有答案了 你知道 Android 的崩溃报告库吗 我不想花很多时间来编写自己的报告系统 输出可以发送到电子邮件或某种服务器 我知道 Google 在 Froyo 中引入了崩溃报告 但我想要一些适用于旧版本系统的东西 我们来
  • 方法不必要地被调用?

    我有一个 BaseActivity 它可以通过其他所有活动进行扩展 问题是 每当用户离开 暂停 活动时 我都会将音乐静音 我也不再接听电话 问题是 onPause每当用户在活动之间切换时就会被调用 这意味着应用程序不必要地静音和停止tele
  • Android 上的 Chrome 强制隐藏地址栏

    我最近开发了一个获取混合 http https 内容的网站 因此 我总是将地址栏显示在顶部 它不会像其他网站那样自动隐藏 这就是我要说的 This https planetkde org 是网站的链接 内容是从各种来源获取的 因此无法过滤非
  • 如何在 C# 中捕获等待的异步方法的异常?

    我基本上想知道在 C 中我应该如何捕获通过等待的异步方法的异常await关键词 例如 考虑以下小控制台程序 其中最重要的是包含一个名为AwaitSync AwaitSync calls TestAsync 它返回一个任务 执行时会抛出异常
  • CheckedTextView 的中心文本和复选标记

    我实现的布局如下图所示 我使用的代码是
  • android studio logcat 中字母的含义是什么? [复制]

    这个问题在这里已经有答案了 在 android studio 中运行应用程序时 会生成 logcat 并且每行的开头都有字母 这些字母的含义是什么 这些字母表用于各种日志选项 请参阅此链接 日志选项 https developer andr
  • Android 上的 Jetty 上的 Jersey 抛出 ContainerException:“不存在 WebApplication 提供程序”

    我正在尝试在 Android 上的 Jetty 上运行 Jersey 我创建了一个 Android 它使用 Jersey Servlet 实例化 Jetty 服务器 无论如何 当我启动 Jetty 并访问 REST 资源时 在我的例子中 h
  • 使用 IntelliJ / Android Studio 调试基于 gradle 的单元测试

    我正在使用robolectric gradle 插件 https github com robolectric robolectric gradle plugin为 Android 编写单元测试 到目前为止 除了能够使用 Android S
  • Android - 如何合并两个视频

    基本上 我正在寻找一种将两个 mp4 视频文件 在 SD 卡上 组合在一起的方法 更像是在第一个视频的末尾附加第二个视频 我进行了很多搜索 但找不到合适的解决方案 好吧 我根本找不到任何解决方案 所以我的问题是 是否有一个库可以组合 并可能
  • 如何在高速缓存中存储图像

    我对此完全空白 我想从 URL 下载图像 并且必须将其存储在内部 以便下次我不需要连接到网络 而是从缓存中检索它 但我不知道该怎么做 谁能帮我提供一个代码片段 import java io BufferedInputStream impor
  • ProGuard 与 Android:java.lang.NoSuchMethodError:android.util.Xml.asAttributeSet

    当 ProGuard 被禁用时 我的应用程序运行正常 启用ProGuard后 应用程序将导出为apk并安装到模拟器中 然后当我在模拟器中运行它时 强制关闭 05 10 11 14 10 582 E AndroidRuntime 759 FA
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • 如何自动更新Android Studio?

    我需要将 Android Studio 更新到 0 9 9 版本 但是当我按 下载 在更新信息对话框上 时 它会将我发送到此处 http developer android com sdk index html http developer

随机推荐

  • 在 Google 地图 v3 中绘制两点之间的路线时行为不一致

    场景 我试图在两者之间画一条路线n使用 Google 地图 v3 的点 纬度 局域网 为此 我正在使用DirectionsService它为我提供了一条路线 然后我将该坐标推入MVCArray然后使用 a 绘制该路径Polyline The
  • 饮食例外

    我正在解析一个不时包含格式错误的数据的文件 它抛出一个异常 我想从异常中恢复并忽略格式错误的数据 最好的方法是什么 try parse file catch Exception eat it EDIT 我认为 我的问题没有被很好地理解 我想
  • 如何在Flutter中将CameraController的XFile转换为Image类型?

    扑动的CameraController has a takePicture 从相机拍照的方法 给出了类型Future
  • 有没有办法不用每次验证就使用Google Api?

    我尝试在 PC 上的自动运行中使用 python 上的 API 但我不能 因为每次程序启动时 它都会询问我授权码 这是我的代码 client secret file client secret json flow google auth o
  • postgresql 分区上的唯一索引

    我有一个名为 cdrs 的表 CREATE TABLE cdrs i cdr bigint NOT NULL i cdrs connection bigint NOT NULL i call bigint NOT NULL customer
  • 单线程异步处理

    即使读完之后http krondo com p 1209 http krondo com p 1209 or 异步调用是否总是创建 调用新线程 https stackoverflow com questions 598436 does an
  • 像alert()函数一样停止页面执行

    当我写作时alert Hello 页面执行停止并等待批准才能继续 我有一个div设置为使用 HTML 显示为虚假警报 thisdiv有一个 确定 按钮 我希望页面停止执行 就像警报一样 直到用户单击 确定 是否可以 你不能 只有特殊的内置程
  • 如何将消息从 Flutter 传递到 Native?

    如果需要与特定 API 硬件组件交互 您如何将信息从 Flutter 传递回 Android Native 代码 是否有任何事件通道可以以其他方式发送信息或类似于回调的方式 The 平台频道 https flutter io platfor
  • 使用不同的密钥对同一文档中的 Xml 元素进行签名

    业务场景 更新可以包含包 包可以包含更改 每个包裹都必须经过某人的批准 批准后 不得更改套餐 要执行更新 必须具有 100 批准的软件包 发展思路 所有数据均保存为 XML 文件 Xml 包 元素将在批准后签署 Problem 无论我尝试什
  • 如何在 Mvccontrib 网格模型中使用自定义列?

    我正在使用 ASP NET MVC 3 Mvccontrib 网格 如下所示 Html Grid Model Columns column gt column For x gt x UserId Named ID column For x
  • Jenkins 插件的 .hpi 和 .jpi 有什么区别?

    我以两种方式安装了 Jenkins 插件 即手动保留 hpi文件位于 Jenkins 主目录中 并从 Jenkins 前端安装 管理 Jenkins gt 管理插件 我在这里注意到的是当我手动安装插件时 下载为 hpi文件 它以扩展名安装
  • 使用 Javascript 获取脚本文件的内容

    我的网页中有以下脚本元素 使用 JavaScript 我希望能够检索脚本文件的内容 我知道我可以使用 ajax 请求来获取数据 但随后我会从本地已有的服务器获取一些内容 所以我更愿意做的是从 DOM 中检索内容 如果可能的话 或具有相同结果
  • 用于分析 .NET 程序函数执行时间的工具

    有哪些工具可用于通过测量函数执行时间并生成图表来可视化调用图中各个点所花费的时间来分析 NET 程序 这会让你付出代价 但是Ants 性能分析器 http www red gate com products ants performance
  • 为什么允许空对象上的扩展方法?

    允许在空对象上调用扩展方法有什么意义 这使我不必要地检查扩展方法中的空对象 AFAIK 我无法理解这一点 请解释 扩展方法是 C 语言的语法糖 它们被编译为 ILCode 中的普通静态方法调用 静态方法在编译时不知道任何有关参数的信息
  • 在 R 中,如何在点 sf 对象上运行 st_convex_hull 函数?

    我正在尝试在 R 中获得点特征的凸包 library tmap library sf nc lt st centroid st read system file shape nc shp package sf qtm nc ch lt st
  • 前台服务被操作系统杀死

    我有一个前台服务 它从服务器下载一些数据 问题是有时操作系统杀死了我的前台服务 但服务的通知不会被删除 关于如何在服务不再存在时删除通知的任何想法 None
  • 棘手的 Django GenericRelation 查询

    假设我有一些代表现实生活中的对象的模型 Person Chair Room 我也有一个 收藏 模型 它代表这些模型的一些记录的集合 每个模型都可以是多个集合中的成员 因此 我还创建了一个 会员资格 model 表示一个对象是集合的成员 它的
  • Firestore 文档参考数组

    我的 Firestore 数据库具有以下结构 products Collection procuct 1 Document title url videos Collection video 1 Document title product
  • 如何在 mac osx 上安装 Python docx 模块

    我正在尝试生成 docx使用 Python 的文件 我搜索了网络和帖子 发现了一个模块 https github com mikemaccana python docx blob master README markdown https g
  • 当 Android 的 PreferenceActivity 的 isValidFragment() 被调用时?

    对于我正在开发的某些应用程序 对于 API 级别 19 的设备 我遇到了异常 Caused by java lang RuntimeException Subclasses of PreferenceActivity must overri