6 提笔写忧伤落笔映浮华 5天前 155次点击
反馈类型:稳定性问题 / 崩溃 / ANR
涉及版本:天坦读屏 8.6.0,包名 com.android.tback,versionCode 147
系统环境:Redmi / Xiaomi,HyperOS 3.0,Android 16,SDK 36
近期在 Redmi K80 至尊版 / HyperOS 3.0 / Android 16 环境下,天坦读屏出现两类比较明显的稳定性问题:
SoundBackService.onGesture -> SoundBackService.a2 路径中疑似对只读集合执行 clear 或修改操作,触发 UnsupportedOperationException。com.android.tback/e7.g 处理 SCREEN_OFF / SCREEN_ON 时发生后台 ANR,并被系统以 bg anr kill。Redmi/dali/dali:16/BP2A.250605.031.A3/OS3.0.302.0.WONCNXM:user/release-keysro.mi.os.version.name=OS3.0ro.miui.ui.version.name=V816com.android.tback崩溃时间:06-13 10:18:29.342
异常类型:java.lang.UnsupportedOperationException
异常信息:Operation is not supported for read-only collection
关键路径:SoundBackService.onGesture -> SoundBackService.a2(...:400)
java.lang.UnsupportedOperationException: Operation is not supported for read-only collection
at I5.A.clear(...)
at k7.e.n(...)
at k7.e.l(...)
at k7.e.k(...)
at k7.r.a(...)
at k7.u.m(...)
at k7.u.n(...)
at V6.h.B(...)
at V6.h.C(...)
at V6.h.D(...)
at E6.V0.B(...)
at Z6.l.e(...)
at Z6.l.d(...)
at net.tatans.soundback.SoundBackService.a2(...:400)
at net.tatans.soundback.SoundBackService.onGesture(...:2)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loopOnce(Looper.java:274)
at android.os.Looper.loop(Looper.java:369)
at android.app.ActivityThread.main(ActivityThread.java:10090)
初步判断:这是明确的应用 Java 层主线程崩溃,不是系统后台清理。触发点在手势处理链路中,疑似将不可变 / 只读集合当作可变集合使用。
net.tatans.soundback.SoundBackService.onGesturenet.tatans.soundback.SoundBackService.a2 line 400Collections.emptyList() / Collections.unmodifiableList() 后直接 clear。listOf() 返回只读 List,却被当作 MutableList 使用。修复建议:修改前复制为可变集合,例如 Kotlin 中使用 oldList.toMutableList();或者避免直接修改传入集合。
系统事件中捕获到的 ANR 示例:
06-14 10:00:22.993 I am_anr:
[0,4986,com.android.tback,818429508,
Broadcast of Intent { act=android.intent.action.SCREEN_OFF flg=0x50200010 cmp=com.android.tback/e7.g }]
06-14 10:00:24.308 I am_kill:
[0,4986,com.android.tback,0,bg anr,440984]
06-14 10:00:24.393 I am_schedule_service_restart:
[0,com.android.tback/net.tatans.soundback.SoundBackService,1000]
现象说明:com.android.tback 在处理熄屏广播时发生后台 ANR,随后被系统 kill,并重启 SoundBackService、NotificationService、TatansImeService 等相关服务。
Broadcast of Intent { act=android.intent.action.SCREEN_OFF ... cmp=com.android.tback/e7.g }Broadcast of Intent { act=android.intent.action.SCREEN_ON ... cmp=com.android.tback/e7.g }SoundBackService.J0SoundBackService.H0SoundBackService.M0SoundBackService.uncaughtExceptionlibmsc.solibtatansAi.solibmindspore-lite-ocr.solibmarsxlog.so初步怀疑:熄屏 / 亮屏广播处理路径中同步执行了耗时操作,或者等待 native 线程 / 语音识别 / TTS / AI / OCR / 日志 flush / 资源释放,导致 BroadcastReceiver 超时。
BroadcastReceiver.onReceive() 或主线程同步执行耗时操作。goAsync() + 后台线程,并加超时保护。libmsc、AI、OCR、xlog 等模块在熄屏时是否存在 join / wait / flush 死等。data_app_anr,SCREEN_OFF -> com.android.tback/e7.gdata_app_anr,SCREEN_ON -> com.android.tback/e7.g,涉及 libmsc.sodata_app_anr,涉及 libmsc.so、libtatansAi.sodata_app_anr,涉及 libmindspore-lite-ocr.so、libmsc.so、libtatansAi.sodata_app_crash,UnsupportedOperationExceptiondata_app_crash,栈涉及 SoundBackService.a2 / onGesturedata_app_anr,SCREEN_OFF -> com.android.tback/e7.g
AppOps: attributionTag not declared in manifest of com.android.tback
Noting op not finished: uid 10482 pkg com.android.tback code 154
这不一定是直接崩溃原因,但建议顺手检查音频焦点、无障碍朗读、录音或系统权限统计相关 API 是否存在未正常结束的调用。
天坦读屏 8.6.0 在 Android 16 / HyperOS 3.0 环境下目前观察到两类问题:
SoundBackService.onGesture -> a2 中疑似修改只读集合,导致 UnsupportedOperationException。com.android.tback/e7.g 处理 SCREEN_OFF / SCREEN_ON 时频繁 ANR,被系统以 bg anr kill,栈中多次涉及 SoundBackService.H0/J0/M0 以及 libmsc.so、libtatansAi.so、libmindspore-lite-ocr.so。我本地保留了完整采集日志,文件名包括:
tback_crash_report_20260614_124338.txttback_developer_feedback_20260614_125324.txt如果开发者需要完整日志,我可以继续补充上传或贴出关键片段。
本楼来自:我的世界肝帝玩家的资源库,可以进来看看