记录一个Android崩溃 MessageQueue

2,031 阅读1分钟

一个系统类的崩溃,看不到业务代码调用。

java.lang.IllegalStateException

The specified message queue synchronization barrier token has not been posted or has already been removed. android.os.MessageQueue.removeSyncBarrier(MessageQueue.java:587)

以前的一个版本也增多了,猜测是因为子线程刷新UI引起。通过查看irc(一种tcp通信,数据回调就在子线程)消息,发现问题,改了以后就变少了。 但这一版本又增多了,这次还是通过cordreview代码,猜测可能是LottieValueAnimator的playAnimation运行子线程。

模拟测试代码

image.png

崩溃信息

image.png

防止措施,判断如果不是主线,post到主线程

image.png