一个break引发的血案
还是之前那个项目,有多个activity。
切到自由车activity以后,使用vs发模拟数据,结果就挂了
刚开始努力想抓日志,然后发现抓不到,这里面有个小收获,就是咋屏蔽特定关键词
^(?!.*(Accessing)).*$
这应该是个正则表达式,实在是懒得研究这东西,但是这个试过是好使的
-----最后实际是挂在下面这行代码,当jsonArrayLeaderList为空的时候,看来安卓studio也不是万能的,这个异常就抓不住,不知道为啥。也可能有打印但是我没找到,反正没出调用栈
Int LeaderCount=jsonArrayLeaderList.length();
然后开始单步调试,调着调着发现接收数据的部分,收着收着就挂了,基本上是挂在这个位置
还以为是sendMessage有问题,排查了半天,也没发现啥问题
然后又多调试了几次,发现有时候是走到下一行再挂,就很奇怪,突然想到这个activity是多线程的,可能是接收线程有问题
然后就在接收线程挂了个断点,跑着跑着发现0x01部分能顺利走完,然后就走到0x02部分挂了
又觉得是不是0x02部分没获取到数据,再看看数据也没啥问题,但0x02那里msg.obj就是空的
再仔细想想,是因为0x01发了数据,handler的0x01收到以后,没有break,拿着0x01的数据走到0x02,自然是错的,用空指针去访问成员函数,就挂了。