android APP在蓝牙模拟键盘扫描条码设备开机时闪退

🏆本文收录于《CSDN问答解答》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

问题描述

  android 蓝牙闪退:android APP在蓝牙模拟键盘扫描条码设备开机时闪退.

日志如下:

D/CrashReport: >>> com.hainatong.qiping.MainActivity onPaused <<<
I/CrashReport-Native: Set native info: isAppForeground(false)
E/onPause: (MainActivity.java:79)onPause
E/MainActivity: (MainActivity.java:85)onStop
I/[LiveEventBus]: observer removed: com.jeremyliao.liveeventbus.core.LiveEventBusCore$ObserverWrapper@df354b3
I/[LiveEventBus]: observer removed: com.jeremyliao.liveeventbus.core.LiveEventBusCore$ObserverWrapper@f8f8d0c
E/onDestroy: (BaseActivity.java:308)viewModel==com.hainatong.qiping.vm.LoginVM@f4f1976
D/CrashReport: >>> com.hainatong.qiping.MainActivity onDestroyed <<<
W/ainatong.qipin: Accessing hidden field Landroid/view/inputmethod/InputMethodManager;->mCurRootView:Landroid/view/View; (greylist, reflection, allowed)
W/ainatong.qipin: Accessing hidden field Landroid/view/inputmethod/InputMethodManager;->mServedView:Landroid/view/View; (greylist-max-p, reflection, denied)
W/ainatong.qipin: Accessing hidden field Landroid/view/inputmethod/InputMethodManager;->mNextServedView:Landroid/view/View; (greylist-max-p, reflection, denied)
E/BaseTitleActivity: (BaseTitleActivity.java:66)onDestroy
W/TextToSpeech: stop failed: not bound to TTS engine
W/TextToSpeech: shutdown failed: not bound to TTS engine
D/Surface: Surface::disconnect(this=0x7d012f5000,api=1)
D/View: [Warning] assignParent to null: this = DecorView@ecc6732[MainActivity]
D/com.base.common: JPush BaseAppMainActivity
D/CrashReport: >>> com.hainatong.qiping.MainActivity onCreated <<<
I/[LiveEventBus]: observe observer: com.jeremyliao.liveeventbus.core.LiveEventBusCore$ObserverWrapper@a0b84b2(com.base.common.view.base.BaseViewUtils$1@d01ec03) on owner: com.hainatong.qiping.MainActivity@7e82449 with key: user_update_success
E/MainActivity: (MainActivity.java:150)initView
D/CrashReport: >>> com.hainatong.qiping.MainActivity onResumed <<<
I/CrashReport-Native: Set native info: isAppForeground(true)
V/PhoneWindow: DecorView setVisiblity: visibility = 4, Parent = null, this = DecorView@caa8099[]
D/ViewRootImpl[MainActivity]: hardware acceleration = true , fakeHwAccelerated = false, sRendererDisabled = false, forceHwAccelerated = false, sSystemRendererDisabled = false
V/PhoneWindow: DecorView setVisiblity: visibility = 0, Parent = android.view.ViewRootImpl@cb6700c, this = DecorView@caa8099[MainActivity]
D/CrashReport: >>> com.hainatong.qiping.MainActivity onPaused <<<
I/CrashReport-Native: Set native info: isAppForeground(false)
E/onPause: (MainActivity.java:79)onPause
D/View: [ANR Warning]onMeasure time too long, this =android.widget.LinearLayout{719b100 V.E...... ......ID 0,0-0,0}time =578 ms
D/View: [ANR Warning]onMeasure time too long, this =androidx.appcompat.widget.ContentFrameLayout{fde8d39 V.E...... ......ID 0,0-0,0 #1020002 android:id/content}time =579 ms
D/View: [ANR Warning]onMeasure time too long, this =androidx.appcompat.widget.FitWindowsLinearLayout{3dfaf7e V.E...... ......ID 0,0-0,0 #7f090050 app:id/action_bar_root}time =579 ms
D/View: [ANR Warning]onMeasure time too long, this =android.widget.FrameLayout{72a4cdf V.E...... ......ID 0,0-0,0}time =580 ms
D/View: [ANR Warning]onMeasure time too long, this =android.widget.LinearLayout{3e8dd2c V.E...... ......ID 0,0-0,0}time =580 ms
D/View: [ANR Warning]onMeasure time too long, this =DecorView@caa8099[MainActivity]time =581 ms
I/GED: ged_boost_gpu_freq, level 100, eOrigin 2, final_idx 15, oppidx_max 15, oppidx_min 0
E/MainActivity: (MainActivity.java:85)onStop
V/PhoneWindow: DecorView setVisiblity: visibility = 4, Parent = android.view.ViewRootImpl@cb6700c, this = DecorView@caa8099[MainActivity]
I/[LiveEventBus]: observer removed: com.jeremyliao.liveeventbus.core.LiveEventBusCore$ObserverWrapper@8161eae
I/[LiveEventBus]: observer removed: com.jeremyliao.liveeventbus.core.LiveEventBusCore$ObserverWrapper@a0b84b2
E/onDestroy: (BaseActivity.java:308)viewModel==com.hainatong.qiping.vm.LoginVM@f4f1976
D/CrashReport: >>> com.hainatong.qiping.MainActivity onDestroyed <<<
W/ainatong.qipin: Accessing hidden field Landroid/view/inputmethod/InputMethodManager;->mServedView:Landroid/view/View; (greylist-max-p, reflection, denied)
W/ainatong.qipin: Accessing hidden field Landroid/view/inputmethod/InputMethodManager;->mNextServedView:Landroid/view/View; (greylist-max-p, reflection, denied)
E/BaseTitleActivity: (BaseTitleActivity.java:66)onDestroy
W/TextToSpeech: stop failed: not bound to TTS engine
W/TextToSpeech: shutdown failed: not bound to TTS engine
D/View: [Warning] assignParent to null: this = DecorView@caa8099[MainActivity]
I/Choreographer: Skipped 35 frames!  The application may be doing too much work on its main thread.

如上问题有来自我自身项目开发,有的收集网站,有的来自读者,如有侵权,立马删除。

解决方案

  如下是上述问题的解决方案,仅供参考:

  从你提供的日志来看,Android APP在蓝牙模拟键盘扫描条码设备开机时发生闪退,可能的原因有:

  1. ANR(Application Not Responding)
    日志中有多条ANR警告,如:
   [ANR Warning]onMeasure time too long

这表明onMeasure方法执行时间过长,导致应用无法及时响应。这通常是由于复杂的布局或不合理的视图嵌套造成的。需要优化布局以减少测量时间。

  1. 硬编码问题
    日志显示:
   W/ainatong.qipin: Accessing hidden field Landroid/view/inputmethod/InputMethodManager;->mCurRootView:Landroid/view/View; (greylist, reflection, allowed)

这是对Android灰名单API的访问,建议检查代码,避免使用反射访问这些API。

  1. 资源未正确释放
    日志中的TextToSpeech提示:
   W/TextToSpeech: stop failed: not bound to TTS engine
   W/TextToSpeech: shutdown failed: not bound to TTS engine

这表明可能存在TextToSpeech资源未正确释放的情况。确保在onDestroyonPause中释放TextToSpeech实例。

  1. ViewModel未正确配置
    日志中的onDestroy方法调用显示:
   E/onDestroy: (BaseActivity.java:308)viewModel==com.hainatong.qiping.vm.LoginVM@f4f1976

这可能意味着ViewModel的生命周期没有管理好,需要检查ViewModel的实现和使用方式。

  1. 主线程工作量过大
    日志中的Choreographer提示:
   I/Choreographer: Skipped 35 frames! The application may be doing too much work on its main thread.

这表明主线程可能执行了太多工作,导致帧跳过。需要检查是否有耗时的操作在主线程运行,并将其移到后台线程。

  1. 初始化视图错误
    日志中的initView方法调用显示错误:
   E/MainActivity: (MainActivity.java:150)initView

这表明在初始化视图时出现了问题。需要检查initView方法的实现,找出具体的错误原因。

  1. 日志中还提到了LiveEventBus
   I/[LiveEventBus]: observer removed

这表明LiveEventBus的观察者被移除。检查LiveEventBus的使用,确保事件的注册和反注册正确。

  解决这些问题通常需要对代码进行详细的审查和调试。你可以使用Android Studio的Logcat功能来获取更详细的错误信息,并使用debug模式运行应用来逐步跟踪问题。此外,确保应用遵守Android开发的最佳实践,包括合理管理资源、避免在主线程执行耗时操作、正确使用ViewModel和LiveData等。

  希望如上措施及解决方案能够帮到有需要的你。

  PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

  若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。

☀️写在最后

  ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏《CSDN问答解惑-专业版》,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。

码字不易,如果这篇文章对你有所帮助,帮忙给 bug菌 来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

📣关于我

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,掘金等各大社区平台签约作者,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 30w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿哇。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

下载安装VSCode并添加插件作为仓颉编程入门编辑器

VSCode下载地址&#xff1a;下载 Visual Studio Code - Mac、Linux、Windows 插件下载&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 仓颉社区中下载解压 cangjie.vsix 插件 打开VSCode 按 Ctrl Shift X 弹出下图 按照上图步骤依次点击选中我们下…

【Unity2D 2022:UI】制作主菜单

一、创建主菜单游戏场景 1. 在Scenes文件夹中新建一个游戏场景Main Menu 2. 为场景添加背景 &#xff08;1&#xff09;创建画布Canvas &#xff08;2&#xff09;在Canvas中创建新的空游戏物体Main Menu &#xff08;3&#xff09;在Main Menu中新建一个图像游戏物体Backgrou…

c++基础(1)

c语言是结构化和模块化的语言&#xff0c;用于处理规模较小的程序。当问题需要高度抽象和建模时&#xff0c;c语言不适合。c是基于c语言产生的&#xff0c;既可以进行c语言过程化程序设计&#xff0c;又可以以抽象数据类型为特点的基于对象的程序设计&#xff0c;还可以进行面向…

pico+unity手柄和摄像机控制初级设置

1、摄像头配置 摄像头模式、floor是追踪原点类型&#xff08;将根据设备检测到地面的高度来计算追踪原点&#xff09;&#xff0c; Device 模式时&#xff0c;为通常理解的 Eye 模式&#xff0c;不会将根据设备检测到地面的高度来计算追踪原点 选择floor时&#xff0c;修改相…

达梦数据库的系统视图v$recover_status

达梦数据库的系统视图v$recover_status 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$RECOVER_STATUS 是一个系统视图&#xff0c;用于显示数据库的恢复状态信息。这个视图对于数据库管理员来说非常重要&#xff0c;尤其是在数据库发生故障需要进行恢复操…

Claude 3.5 Sonnet模型发布,对比ChatGPT4o孰强孰弱

Anthropic 这家生而为打击 OpenAI 安全问题的公司&#xff0c;正式发布了Claude 3.5 Sonnet模型&#xff01; 用官网的话就是&#xff1a; 今天&#xff0c;我们推出了 Claude 3.5 Sonnet&#xff0c;这是我们即将推出的 Claude 3.5 型号系列中的第一个版本。Claude 3.5 Sonne…

批量提取PDF指定区域内容到 Excel , 根据PDF文件第一行文字来自动重命名v1.3-附思路和代码实现

本次文章更新内容&#xff0c;图片以及扫描的PDF也可以支持批量提取指定区域内容了&#xff0c;主要是通过截图指定区域&#xff0c;然后使用OCR来识别该区域的文字来实现的&#xff0c;所以精度可能会有点不够&#xff0c;但是如果是数字的话&#xff0c;问题不大&#xff1b;…

在线工具--将Json结构映射为另外一种Json结构

具体请前往&#xff1a;在线工具-将json结构映射为另外一个json结构

Home Assistant在windows环境安装

Home Assistant是什么&#xff1f; Home Assistant 是一个开源的智能家居平台&#xff0c;旨在通过集成各种智能设备和服务&#xff0c;提供一个统一的、可自定义的家庭自动化解决方案。它可以允许用户监控、控制和自动化家中的各种设备&#xff0c;包括灯光、温度、安全系统、…

算法 —— 高精度(模拟)

目录 加法高精度 两个正整数相加 两个正小数相加 两正数相加 减法高精度 两个正整数相减 两个正小数相减 两正数相减 加减法总结 乘法高精度 两个正整数相乘 两个正小数相乘 乘法总结 加法高精度 题目来源洛谷&#xff1a;P1601 AB Problem&#xff08;高精&#x…

JVM知识点

一、java内存区域与内存异常 1、运行时数据区域 1&#xff09;程序计数器 程序计数器&#xff08;Program Counter Register&#xff09;是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里 [1] &#xff0c;字节码…

降本增效CRKD:通过跨模态知识蒸馏增强相机与毫米波雷达目标检测精度

Abstract 在自动驾驶的3D目标检测领域&#xff0c;激光雷达-摄像头&#xff08;LC&#xff09;融合是表现最好的传感器配置。然而&#xff0c;激光雷达的成本相对较高&#xff0c;这阻碍了该技术在消费者汽车中的普及。相反&#xff0c;摄像头和雷达已经普遍部署在现有车辆上&…

Springboot整合MyBatis实现数据库查询(二)

目录 第一章、准备1.1&#xff09;准备数据库表1.2&#xff09;创建springboot项目&#xff0c;添加依赖1.3&#xff09;使用mybatis逆向工程 第二章、代码开发2.1&#xff09;建包并编写代码2.2&#xff09;application配置文件2.3&#xff09;设置编译位置 第三章、测试访问3…

用HTML和CSS实现提示工具(tooltip)及HTML元素的定位

所谓提示工具&#xff0c;是指将鼠标移动到某个HTML元素&#xff08;工具&#xff09;时会显示一些提示内容&#xff08;提示文本&#xff09;&#xff0c;而鼠标移出工具元素的范围时提示文本就消失了。考虑到提示文本元素应当在鼠标进入工具元素时显示&#xff0c;鼠标离开工…

JDK之使用keytool安装cer证书

可针对https请求缺失证书解决报错&#xff1a; PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 解决办法&#xff1a; 先通过浏览器下载证书&#xff0c;再使用JDK自带…

互联网末法时代的一些思考

这篇文章也是临时起意&#xff0c;很长一段时间没写个人思考类的文章&#xff0c;主要原因也是时间完全不够用。随着年龄的增长&#xff0c;看待问题的视角也逐渐发生变化&#xff0c;例如从关注现象到关注动机&#xff0c;从关注结果到关注起因&#xff0c;2021年的时代我曾经…

时间序列问题解题(基于经验模型,使用机器学习模型)(Datawhale AI 夏令营)

示例题目&#xff1a;2024 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn) 一&#xff0c;时间序列问题概述 1、时间序列问题定义 时间序列问题是一类重要的统计和数据分析问题&#xff0c;它涉及对按时间顺序排列的数据点进行分析、建模和预测。时间序列数据是由一系列随时…

【Apache Doris】周FAQ集锦:第 14 期

【Apache Doris】周FAQ集锦&#xff1a;第 14 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户…

支持CF高帧率的免费虚拟机系统

分享一个支持CF高帧率的免费虚拟机系统&#xff0c;这个是某UP主分享的&#xff0c;帧率也是能到两百帧吧&#xff0c;内存这些我开的是6h6g的&#xff0c;具体还是得看你们自己的电脑配置&#xff01;文件较大&#xff0c;请先保存再下载&#xff0c;因为我也不知道哪天取消分…

Julia 初学者指南(一) | 安装、配置及编译器

唠唠闲话 Julia 是一种高性能的动态编程语言&#xff0c;特别适用于数值分析和计算科学领域。它拥有一个强大的类型系统和灵活的多重分派机制&#xff0c;这使得代码易于编写同时还能保持接近 C 语言的运行速度。此外&#xff0c;Julia 也能无缝调用 C 和 Fortran 库&#xff0…