android 断点源码不对的一个坑
有时候会看看Android 源码,难免会去设置断点,看看源码是否执行这一步或者源码的逻辑,
最近重新看Handler源码的时候就遇到这么一个坑;
public final boolean sendMessage(@NonNull Message msg) {
return sendMessageDelayed(msg, 0);
}
在子线程发送消息这里断点,发现debug为主线程,如图:
两种方式都显示在主线程,这就有问题了,难道handler发送消息就处于主线程了吗?哪还需要消息队列、Looper干啥?
经过好多天的思索,终于找到问题的答案了;
和手机的版本有关!
就是要求手机的版本号要和项目的编译版本号一致!
比如手机是安卓版本是30,那么gradle.build这里也要设置为30;
当然,断点非源码不受此坑影响;
好了,又可以愉快玩耍了。
还没有评论,来说两句吧...