android 断点源码不对的一个坑

素颜马尾好姑娘i 2024-04-17 06:20 70阅读 0赞

有时候会看看Android 源码,难免会去设置断点,看看源码是否执行这一步或者源码的逻辑,

最近重新看Handler源码的时候就遇到这么一个坑;

  1. public final boolean sendMessage(@NonNull Message msg) {
  2. return sendMessageDelayed(msg, 0);
  3. }

在子线程发送消息这里断点,发现debug为主线程,如图:

e96367fcd81a47938dca92f9b1c90369.png

4962872acbbb4e58baac408a919b67ca.png

8554a622cdbf4ff282ffbfa71cb9ec98.png 两种方式都显示在主线程,这就有问题了,难道handler发送消息就处于主线程了吗?哪还需要消息队列、Looper干啥?

经过好多天的思索,终于找到问题的答案了;

和手机的版本有关!

就是要求手机的版本号要和项目的编译版本号一致!

6bce9629c4914dc9994c24013f6c4883.png

比如手机是安卓版本是30,那么gradle.build这里也要设置为30;

当然,断点非源码不受此坑影响;

好了,又可以愉快玩耍了。

发表评论

表情:
评论列表 (有 0 条评论,70人围观)

还没有评论,来说两句吧...

相关阅读