Android Studio断点调试时行号对应不上问题解决

时间:2024-03-20 20:35:45

有时候我们debug 的时候会发现程序真正断点的位置和我们打断点的位置不对应,例如:
工程compileSdkVersion27,但程序运行在26的设备上时
Android Studio断点调试时行号对应不上问题解决

可以看到我们期望是在991行断点,但是实际上它却在980的位置断点了。

对于这个问题网上很多关于人写了一大堆乱七八糟的解决方法,但是实际上没有一点鸟用,实际上很多人的博客都是抄的。
不过有一位老铁的方法经我测试是可以有效解决这个问题的,但是实际上有更好的办法这个后面再说。
文章原链接:https://blog.csdn.net/leilba/article/details/79198221

按照这篇文章中说的方法,我可以把compileSdkVersion改为何设备一样的26,但是这样要重新编译安装过程非常麻烦而且还可能会报一大堆编译的错误,肯定是不用这个方法。文章说的另外一个方法满天过海,去\SDK\sources路径下把android-27负责一份重命名为android-26然后重启studio这样确实可以解决这个问题,不过这样做因为android的这些源码文件其实挺大的,复制过来复制过去的都要不少时间,而且等你调试完你还要给它再改回去万一手抖删错了文件那就麻烦了。

所以重点来了,我们可以采用一个更简便有效的方法。去C:\Users\Administrator\.AndroidStudio3.2\config\options路径下文本编辑打开jdk.table.xml这个文件(如果你的studio是3.1的那么路径就是AndroidStudio3.1\config\options)

Android Studio断点调试时行号对应不上问题解决
然后把27的源码路径改为26,保存退出。
Android Studio断点调试时行号对应不上问题解决
然后restart studio,然后重新打断点调试就可以了。调试完了,记得重新把26重新改为27。
这个方法省去了复制删除的时间,而且只修改一处地方且name的对应关系,比较不容易手抖改错,墙裂推荐。

**注意:**实际上如果你用的是真机调试,其实你会发现按照上面的方法去做有很大的可能还是对应不上,这是因为国内的手机android系统基本上都是定制过了,源码很可能被改过了所以行号发生了变化,所以请用studio自带的模拟器去调试确保设备用的是原始的系统源码。