No view found for id 0x7f0901c3 for fragment解决以及线上bug排查技巧

情景再现

开发这么久,不知道你们是否也经历过这样的情况,测试或者用户,反馈app闪退,结果你自己打开开发工具,去调试,一切正常,然后闪退还是存在,只是在开发环境中不能重现。这种情况一般是在特定的情况下才触发的bug。比如app退出后台,再打开的时候,重启了,这样你在开发环境很难模拟到。那这种bug怎么来排查的,两种办法:

集成bugly

bugly是个很好的工具,

腾讯Bugly,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。

具体怎样集成自行百度。集成以后,可以查看到很多开发环境看不到的bug,这样就根据崩溃记录,对app进行完善。

bug重现

虽然bugly能看到日志,但是怎么才能重现呢,毕竟不重现,没办法解决bug,能重现的bug,其实是最好解决的Bug。对于一些bug,可能加一些判断非空就行了,但是有些bug,比较难重现,比如

No view found for id 0x7f0901c3 (包名:id/frameLayout) for fragment MergedModuleNoLoginFragment{acdaeec} (156480ac-26ef-4bdc-8ec6-ae57f092d97f id=0x7f0901c3)
包名.UI.onStart(UI.java:75)

这个bug困扰了我好久,开发环境始终重现不了,加了try-catch也不行,然后网上的方法都试了,也不行。这个bug的原因就是一句话:调用的时机不对,还没初始化完成,就切换了。这个bug一般会在fragment嵌套fragment的代码里出现。现在将解决办法说一下

开发环境重现bug

其实一些bug,正常情况下是重现不了的,我们可以通过设置开发者选项里的不保留活动,调试的时候,正常进入页面,然后点击home键,回到桌面,再点击图标,就有可能重现一些Bug
在这里插入图片描述
我这边的bug解决,是将切换fragment的方法,放到了onStart()方法里,之前是放在onCreate()方法里,有可能view还没初始化,就调用了,会报错

   protected void switchFragmentContent(TFragment fragment){FragmentManager fm = getSupportFragmentManager();FragmentTransaction transaction = fm.beginTransaction();transaction.replace(fragment.getContainerId(), fragment);try{transaction.commitNowAllowingStateLoss();}catch (Exception e){e.printStackTrace();}}

关于这个Bug,网上有一些博客,我把筛选过,感觉有用的博客分享一下
Fragment找不到资源Id引起的线上Crash
从一个线上 Android Bug 回看 Fragment
java.lang.IllegalArgumentException No view found for id 0x7
java.lang.IllegalArgumentException No view found for id 0x… for fragment
Fragment嵌套fragment出现的两种错误No view found for id for fragment 与Can not perform this action after onSave
java.lang.IllegalArgumentException: No view found for id 崩溃总结
关于No view found for id 0x7f080135 (com.xxx.xxx:id/viewpager) for fragment PopupWindow
遇到的错误之java.lang.IllegalArgumentException: No view found for id
Android之 运行时错误总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/91247.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS系统环境搭建(九)——centos系统下使用docker部署项目

centos系统环境搭建专栏🔗点击跳转 关于Docker-compose安装请看CentOS系统环境搭建(三)——Centos7安装Docker&Docker Compose,该文章同样收录于centos系统环境搭建专栏。 Centos7部署项目 采用前后端分离的形式部署。使用Do…

echarts多条折线图

代码 <template><div><!-- 折线图 --><div id"average-score1" class"risk-percent" /></div> </template><script> import * as echarts from "echarts";export default {name: "StrategicRis…

对任意类型数都可以排序的函数:qsort函数

之前我们学习过冒泡排序&#xff1a; int main() {int arr[] { 9,7,8,6,5,4,3,2,1,0 };int sz sizeof(arr)/sizeof(arr[0]);int i 0;for (i 0; i < sz-1; i) {int j 0;for (j 0; j < sz-1-i; j) {if (arr[j] > arr[j 1]){int temp 0;temp arr[j];arr[j] ar…

动手学深度学习-pytorch版本(一):引言 预备知识

参考引用 动手学深度学习利用 Anaconda 安装 pytorch 和 paddle 深度学习环境 pycharm 安装 0. 环境安装 利用 Anaconda 安装 pytorch 和 paddle 深度学习环境 pycharm 安装 1. 引言 机器学习&#xff08;machine learning&#xff0c;ML&#xff09;是⼀类强⼤的可以从经…

如何使用CSS实现一个下拉菜单?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现下拉菜单⭐ HTML 结构⭐ CSS 样式⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些…

大数据Flink(六十):Flink 数据流和分层 API介绍

文章目录 Flink 数据流和分层 API介绍 一、​​​​​​​​​​​​​​Flink 数据流

关于vue,记录一次修饰符.stop和.once的使用,以及猜想。

内置指令 | Vue.js 在vue的api里&#xff0c;关于v-on有stop和once两个事件标签。 .stop - 调用 event.stopPropagation()。.once - 最多触发一次处理函数。 原有主要代码和页面效果 &#xff08;无stop和once&#xff09;: ...<div class"div" click"di…

Azure添加网络接口

添加网络接口的意义 在 Azure 上&#xff0c;为虚拟机添加网络接口的意义包括以下几个方面&#xff1a; 扩展网络带宽&#xff1a;通过添加多个网络接口&#xff0c;可以增加虚拟机的网络带宽&#xff0c;提高网络传输速度和数据吞吐量。实现网络隔离&#xff1a;每个网络接口…

在时间和频率域中准确地测量太阳黑子活动及使用信号处理工具箱(TM)生成广泛的波形,如正弦波、方波等研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【C++】速识string

一、创建string对象 1、文档 2、常用 并不是所有的用法都需要熟记于心&#xff0c;我们只需记住常用的即可&#xff0c;对于并不常用的&#xff0c;我们可以在用到的时候查看文档学习使用。 void Test1() {string s1;string s2("Hello World");s1 "Hello …

正中优配:牛市旗手“又行了”

8月15日早盘&#xff0c;A股首要指数呈弱势盘整态势&#xff0c;截至记者发稿时&#xff0c;沪指小幅翻红&#xff0c;深证成指、创业板指依然飘绿。 中拉升&#xff1b;周一活泼的酒店、旅游板块则震荡调整&#xff1b;房地产板块盘中震荡&#xff0c;体现较弱。 “牛市旗手”…

JVM---理解jvm之对象已死怎么判断?

目录 引用计数算法 什么是引用 可达性分析算法&#xff08;用的最多的&#xff09; 引用计数算法 定义&#xff1a;在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一&#xff1…

企业权限管理(九)-用户操作

用户操作 1用户查询 UserController findAll Controller RequestMapping("/user") public class UserController {Autowiredprivate IUserService userService;RequestMapping("/findAll.do")public ModelAndView findAll() throws Exception {ModelAndVie…

Mysql 搭建MHA高可用架构,实现自动failover,完成主从切换

目录 自动failover MHA&#xff1a; MHA 服务 项目&#xff1a;搭建Mysql主从复制、MHA高可用架构 实验项目IP地址配置&#xff1a; MHA下载地址 项目步骤&#xff1a; 一、修改主机名 二、编写一键安装mha node脚本和一键安装mha mangaer脚本&#xff0c;并执行安装…

让光存在,探索光耦继电器的魔力

光耦合器继电器是电路中的无名英雄&#xff0c;正在改变我们实现电气安全和控制的方式。这些卓越的设备&#xff08;也称为光电耦合器继电器&#xff09;由于其在电气隔离电路上传输信号和功率的独特能力而在各个行业中广受欢迎。今天&#xff0c;我们深入探讨光耦合器继电器背…

AI一键生成数字人

AI一键生成数字人 阅读时长&#xff1a;10分钟 本文内容&#xff1a; 结合开源AI&#xff0c;一键生成短视频发布到常见的某音&#xff0c;某手平台&#xff0c;狠狠赚一笔 前置知识&#xff1a; 基本的 python 编程知识Jupyter Notebook 使用过Linux 使用过 先上源码,colab一键…

如何快速便捷收集市场信息?电商API来帮你

电商API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是为了促进不同电商平台之间数据共享和交互而设计的一种技术。通过使用电商API&#xff0c;可以快速便捷地收集市场信息&#xff0c;提升电商运营效率&#xff0c;增加竞争力。 …

Flutter 混合架构方案探索

得益于 Flutter 优秀的跨平台表现&#xff0c;混合开发在如今的 App 中随处可见&#xff0c;如最近微信公布的小程序新渲染引擎 Skyline 发布正式版也在底层渲染上使用了 Flutter&#xff0c;号称渲染速度提升50%。 在现有的原生 App 中引入 Flutter 来开发不是一件简单的事&a…

Bitcoin 加速交易操作示例

这里以 Bitcoin Ordinals NFT 为例&#xff0c; 进行加速交易演示 第1步&#xff1a;新建子账户 温馨提示&#xff1a;如果有多条鱼未确认&#xff0c;也只需1个账户即可&#xff0c;不必搞多个子账户 第2步&#xff1a;切换回到老地址&#xff08;Account 1&#xff09; 第3步…

【Unity每日一记】进行发射,位置相关的方法总结

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…