背景:我有一个应用程序已经发布了一年多,最后一次更新是在三个月前。从来没有遇到过 ANR 错误的问题。该应用程序相当稳定,超过 100,000 次活跃安装。
最近,我从我的应用程序的各个地方收到了 ANR keyDispatchingTimedOut 报告(其中大约 30 个),所有这些报告都与 com.carrieriq.iqagent.client 有关。
例如,达尔维克线程:
“主要”prio=5 tid=1 MONITOR | group="main" sCount=1 dsCount=0 s=N obj=0x40020a30 self=0xcd88 | sysTid=19807 nice=0 sched=0/0 cgrp=默认句柄=-1345026000 在 com.carrieriq.iqagent.client.NativeClient.acquire(NativeClient.java:~35) - 等待 threadid=2 (HeapWorker) 持有的锁 (a java.lang.Object) 在 com.carrieriq.iqagent.client.IQClient.(IQClient.java:115) 在 com.carrieriq.iqagent.client.IQClient.(IQClient.java:105) 在 android.app.AlertDialog$Builder.create(AlertDialog.java:826) 在 android.app.AlertDialog$Builder.show(AlertDialog.java:864) 在 com.myapp.button.pushed$SomeRunnable.run(SomeRunnable.java:299)
-- SomeRunnable.java 第 299 行只是 adialog.show();
报告中唯一的其他线程是:
“HeapWorker”守护进程prio=5 tid=2 NATIVE | group="system" sCount=1 dsCount=0 s=N obj=0x43b55c98 self=0x11eba8 | sysTid=19808 nice=0 sched=0/0 cgrp=默认句柄=1174376 在 com.carrieriq.iqagent.client.NativeClient.clientShutdown(本机方法) 在 com.carrieriq.iqagent.client.NativeClient.release(NativeClient.java:81) 在 com.carrieriq.iqagent.client.IQClient.disconnect(IQClient.java:341) 在 com.carrieriq.iqagent.client.IQClient.finalize(IQClient.java:354) 在 dalvik.system.NativeStart.run(本机方法)
我在网上搜索了一下,发现有人声称它有电池问题: http ://forums.androidcentral.com/sprint-optimus-s/45729-ever-wondered-what-iqagent.html
所以问题是,我不确定我应该怎么做(检查包是否存在并警告用户可能?)或者这真的是原因吗?
这个包显示在我得到的所有 ANR 跟踪中。(所以只有 sprint 用户一直有这个问题)