You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Flutter应用Android生产环境ANR问题排查求助(android.os.MessageQueue.nativePollOnce栈轨迹无阻塞信息)

Flutter应用Android生产环境ANR问题排查求助(android.os.MessageQueue.nativePollOnce栈轨迹无阻塞信息)

各位好,我负责的Flutter应用在Android生产环境中遇到了棘手的ANR问题,从Firebase拿到的ANR日志里,主线程栈轨迹只显示卡在android.os.MessageQueue.nativePollOnce,完全看不到具体的阻塞原因,实在无从下手,想请大家帮忙分析下排查方向!

涉事设备信息

  • 系统版本:Android 14
  • 设备型号:OnePlus Nord CE 2 Lite 5G

捕获到的ANR栈轨迹

main (native):tid=1 systid=30202
#00 pc 0xf14fc libc.so (__epoll_pwait + 12) (BuildId: d1a98b526f2f94260a53c3055979a4f6)
#01 pc 0x18748 libutils.so (android::Looper::pollInner + 192) (BuildId: 267ba2041a69a401110f388720a8e47b)
#02 pc 0x18624 libutils.so (android::Looper::pollOnce + 124) (BuildId: 267ba2041a69a401110f388720a8e47b)
#03 pc 0x18eaa8 libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce + 48) (BuildId: 5ba6d244d60f0e4e50205e34eeba39e2)
at android.os.MessageQueue.nativePollOnce(Native method)
at android.os.MessageQueue.next(MessageQueue.java:350)
at android.os.Looper.loopOnce(Looper.java:187)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8839)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)

日志相关说明

根据官方提示,这种类型的ANR报告是因为当栈轨迹被捕获时,导致ANR的阻塞状态已经结束,所以无法在栈中定位到具体的阻塞点。这类ANR通常可能由Android系统服务内部的高负载或资源竞争引发,但目前没有直接证据指向具体原因。

我现在的核心困惑:

  • 这种无明确阻塞点的ANR该从哪些角度入手排查?
  • 有没有办法在生产环境中捕获到更有效的栈信息,定位真正的阻塞根源?
  • 针对Flutter应用,有没有特定的排查方向需要重点关注?

希望有经验的朋友能给点建议,万分感谢!

内容来源于stack exchange

火山引擎 最新活动