UsbDeviceConnection.requestWait() 在本机代码中崩溃

如何解决UsbDeviceConnection.requestWait() 在本机代码中崩溃

我有一个 Android 应用程序,它适用于连接到 Android 设备的 USB 设备。我有一个 [相当随机] 崩溃,它来自 Android 本机代码 - 当 Java 的 UsbDeviceConnection.requestWait() 被调用时,它在内部崩溃:

2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630] Runtime aborting...
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630] All threads:
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630] DALVIK THREADS (90):
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630] "Thread-33" prio=10 tid=28 Runnable
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   | group="" sCount=0 dsCount=0 flags=0 obj=0x12d74aa8 self=0x665ce400
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   | sysTid=11330 nice=-20 cgrp=default sched=0/0 handle=0x65522230
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   | state=R schedstat=( 24674013 1199219 14 ) utm=1 stm=1 core=7 HZ=100
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   | stack=0x6541f000-0x65421000 stackSize=1040KB
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   | held mutexes= "abort lock" "mutator lock"(shared held)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #00 pc 0030374f  /apex/com.android.runtime/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char,std::__1::char_traits<char>>&,int,BacktraceMap*,char const*,art::ArtMethod*,void*,bool)+78)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #01 pc 003ae49f  /apex/com.android.runtime/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char,bool,bool) const+362)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #02 pc 003aac53  /apex/com.android.runtime/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char,bool) const+34)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #03 pc 003c3789  /apex/com.android.runtime/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+588)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #04 pc 003bdf0d  /apex/com.android.runtime/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*,art::Closure*)+296)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #05 pc 003bd4b3  /apex/com.android.runtime/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char,bool)+1018)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #06 pc 0037d82b  /apex/com.android.runtime/lib/libart.so (art::Runtime::Abort(char const*)+1054)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #07 pc 000084dd  /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+392)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #08 pc 001e0cf9  /apex/com.android.runtime/lib/libart.so (art::IndirectReferenceTable::AbortIfNoCheckJNI(std::__1::basic_string<char,std::__1::char_traits<char>,std::__1::allocator<char>> const&)+168)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #09 pc 00291367  /apex/com.android.runtime/lib/libart.so (art::IndirectReferenceTable::GetChecked(void*) const+278)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #10 pc 0028d9b1  /apex/com.android.runtime/lib/libart.so (art::JavaVMExt::DecodeGlobal(void*)+8)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #11 pc 003b2e13  /apex/com.android.runtime/lib/libart.so (art::Thread::DecodeJObject(_jobject*) const+170)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   native: #12 pc 0041edbd  /apex/com.android.runtime/lib/libart.so (_ZN3artL37JniMethodEndWithReferenceHandleResultEP8_jobjectjPNS_6ThreadE.llvm.4528425886332199447+36)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   at android.hardware.usb.UsbDeviceConnection.native_request_wait(Native method)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   at android.hardware.usb.UsbDeviceConnection.requestWait(UsbDeviceConnection.java:303)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   at b.d.a.i.d.a.d$a.run(UartCh34x.java:7)
2021-01-03 23:37:33.879 8307-11330 A/d.myusbapp: runtime.cc:630]   at java.lang.Thread.run(Thread.java:919)

就在此之前,我有一条日志消息:

2021-01-03 23:37:32.808 8307-11330 A/d.myusbapp:indirect_reference_table.cc:60] JNI 错误(应用程序错误):尝试使用过时的全局 0x3436(应该是 0x343a)

接下来我有一个完整的调用堆栈:

    --------- beginning of crash
2021-01-03 23:37:35.921 8307-11330 A/libc: Fatal signal 6 (SIGABRT),code -6 (SI_TKILL) in tid 11330 (Thread-33),pid 8307 (d.myusbapp)
2021-01-03 23:37:36.056 11339-11339 I/crash_dump32: obtaining output fd from tombstoned,type: kDebuggerdTombstone
2021-01-03 23:37:36.077 851-851 I//system/bin/tombstoned: received crash request for pid 11330
2021-01-03 23:37:36.080 11339-11339 I/crash_dump32: performing dump of process 8307 (target tid = 11330)
2021-01-03 23:37:36.112 11339-11339 A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2021-01-03 23:37:36.112 11339-11339 A/DEBUG: Build fingerprint: 'Xiaomi/pine_ru/pine:10/QKQ1.191014.001/V11.0.3.0.QCMRUXM:user/release-keys'
2021-01-03 23:37:36.112 11339-11339 A/DEBUG: Revision: '0'
2021-01-03 23:37:36.112 11339-11339 A/DEBUG: ABI: 'arm'
2021-01-03 23:37:36.113 11339-11339 A/DEBUG: Timestamp: 2021-01-03 23:37:36+0500
2021-01-03 23:37:36.113 11339-11339 A/DEBUG: pid: 8307,tid: 11330,name: Thread-33  >>> com.company.project.myusbapp <<<
2021-01-03 23:37:36.113 11339-11339 A/DEBUG: uid: 10213
2021-01-03 23:37:36.113 11339-11339 A/DEBUG: signal 6 (SIGABRT),code -6 (SI_TKILL),fault addr --------
2021-01-03 23:37:36.113 11339-11339 A/DEBUG: Abort message: 'JNI ERROR (app bug): attempt to use stale Global 0x3436 (should be 0x343a)'
2021-01-03 23:37:36.113 11339-11339 A/DEBUG:     r0  00000000  r1  00002c42  r2  00000006  r3  65521680
2021-01-03 23:37:36.113 11339-11339 A/DEBUG:     r4  65521694  r5  65521678  r6  00002073  r7  0000016b
2021-01-03 23:37:36.113 11339-11339 A/DEBUG:     r8  65521690  r9  65521680  r10 655216b0  r11 655216a0
2021-01-03 23:37:36.113 11339-11339 A/DEBUG:     ip  00002c42  sp  65521650  lr  aa08bd17  pc  aa08bd2a
2021-01-03 23:37:36.846 1846-2340 D/MobileSignalController: onSignalStrengthsChanged: SignalStrength:{mCdma=CellSignalStrengthCdma: cdmaDbm=2147483647 cdmaEcio=2147483647 evdoDbm=2147483647 evdoEcio=2147483647 evdoSnr=2147483647 miuiLevel=0 level=0,mGsm=CellSignalStrengthGsm: rssi=2147483647 ber=2147483647 mTa=2147483647 miuiLevel=0 mLevel=0,mWcdma=CellSignalStrengthWcdma: ss=2147483647 ber=2147483647 rscp=2147483647 ecno=2147483647 miuiLevel=0 level=0,mTdscdma=CellSignalStrengthTdscdma: rssi=2147483647 ber=2147483647 rscp=2147483647 miuiLevel=0 level=0,mLte=CellSignalStrengthLte: rssi=-73 rsrp=-104 rsrq=-14 rssnr=52 cqi=2147483647 ta=2147483647 miuiLevel=4 level=3,mNr=CellSignalStrengthNr:{ csiRsrp = 2147483647 csiRsrq = 2147483647 csiSinr = 2147483647 ssRsrp = 2147483647 ssRsrq = 2147483647 ssSinr = 2147483647 miuiLevel = 0 level = 0 },primary=CellSignalStrengthLte}
2021-01-03 23:37:36.847 1846-2340 D/NetworkController.MobileSignalController(1): 4G level = 4
2021-01-03 23:37:36.876 11339-11339 A/DEBUG: backtrace:
2021-01-03 23:37:36.876 11339-11339 A/DEBUG:       #00 pc 0005ed2a  /apex/com.android.runtime/lib/bionic/libc.so (abort+166) (BuildId: 36720ba5aeb300d75235d367cb8550ae)
2021-01-03 23:37:36.876 11339-11339 A/DEBUG:       #01 pc 0037daa1  /apex/com.android.runtime/lib/libart.so (art::Runtime::Abort(char const*)+1684) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #02 pc 000084dd  /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+392) (BuildId: 7d8757d0af891f885311e79971c7fb33)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #03 pc 001e0cf9  /apex/com.android.runtime/lib/libart.so (art::IndirectReferenceTable::AbortIfNoCheckJNI(std::__1::basic_string<char,std::__1::allocator<char>> const&)+168) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #04 pc 00291367  /apex/com.android.runtime/lib/libart.so (art::IndirectReferenceTable::GetChecked(void*) const+278) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #05 pc 0028d9b1  /apex/com.android.runtime/lib/libart.so (art::JavaVMExt::DecodeGlobal(void*)+8) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #06 pc 003b2e13  /apex/com.android.runtime/lib/libart.so (art::Thread::DecodeJObject(_jobject*) const+170) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #07 pc 0041edbd  /apex/com.android.runtime/lib/libart.so (_ZN3artL37JniMethodEndWithReferenceHandleResultEP8_jobjectjPNS_6ThreadE.llvm.4528425886332199447+36) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #08 pc 00b81a4d  /system/framework/arm/boot-framework.oat (art_jni_trampoline+92) (BuildId: f16c3d6eb53614bd493f23b001449977fca78529)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #09 pc 00b8205b  /system/framework/arm/boot-framework.oat (android.hardware.usb.UsbDeviceConnection.requestWait+50) (BuildId: f16c3d6eb53614bd493f23b001449977fca78529)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #10 pc 000d7bc5  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #11 pc 00436235  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+252) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #12 pc 000dffeb  /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*,unsigned int*,unsigned int,art::JValue*,char const*)+178) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #13 pc 002136fd  /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*,art::ShadowFrame*,unsigned short,art::JValue*)+280) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #14 pc 0020f015  /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false,false>(art::ArtMethod*,art::Thread*,art::ShadowFrame&,art::Instruction const*,art::JValue*)+716) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #15 pc 004309fd  /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtualQuick+544) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #16 pc 000d6594  /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual_quick+20) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.877 11339-11339 A/DEBUG:       #17 pc 00b3c5ec  /data/app/com.company.project.myusbapp-qaSxE0kill2Jg9li_hI30A==/oat/arm/base.vdex (b.d.a.i.d.a.d$a.run+112)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #18 pc 001eea01  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.6552526831605965956+192) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #19 pc 001f31f3  /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*,art::CodeItemDataAccessor const&,art::ShadowFrame*)+126) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #20 pc 0041fd1d  /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+852) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #21 pc 000dc5a1  /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #22 pc 00433469  /system/framework/arm/boot.oat (java.lang.Thread.run+64) (BuildId: 25dc848c49b73a592dfde9bbb8215f223aa6d205)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #23 pc 000d7bc5  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #24 pc 00436235  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+252) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #25 pc 000dffeb  /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*,char const*)+178) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #26 pc 0037738b  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&,art::(anonymous namespace)::ArgArray*,char const*)+54) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #27 pc 00378113  /apex/com.android.runtime/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&,_jobject*,_jmethodID*,jvalue const*)+306) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #28 pc 003a924f  /apex/com.android.runtime/lib/libart.so (art::Thread::CreateCallback(void*)+986) (BuildId: 3afb877429edc5fab166cfea8c7a1d7f)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #29 pc 000a69c7  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20) (BuildId: 36720ba5aeb300d75235d367cb8550ae)
2021-01-03 23:37:36.878 11339-11339 A/DEBUG:       #30 pc 000601bf  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: 36720ba5aeb300d75235d367cb8550ae)

这很难有意重现,而且会在不同版本的 Android 上发生。我能够在 Android 10 上捕获一次,但我可以看到 Firebase Crashlytics 在不同版本上的报告。

对出了什么问题有什么想法吗?如何捕获它(因为它发生在 Android 原生代码中)?

附注。该应用的安装次数为数百万次,并且在大多数情况下运行良好。

解决方法

它似乎很活泼并且内部可能不一致:避免快速打开/关闭并记住多线程。我能够通过避免 2 个随后的设备打开/读取/关闭来修复它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-