您的位置:首页 > 移动开发 > Android开发

【Android】Android studio调试源码版本不对应问题

2018-01-29 18:07 573 查看
在使用Android studio进行调试的时候,我们经常会需要debug到源码内部,这个时候经常会出现debug位置与源码行号对应不上的问题,这是因为我们使用的测试设备中的系统版本与我们AndroidStudio中使用的SourceCode的版本不一致导致的。比如我们使用的是6.0的设备,而Android Studio错误地识别并使用了版本为8.0的SourceCode,就会出现这个问题。我们从google 
Issue Tracker可以知道,该问题是已知bug:https://issuetracker.google.com/issues/37058409
    据说官方说,这个问题很早就已经解决了,但是实际上我们现在能下载到的版本依旧存在该问题(笔者目前的版本 Android Studio 3.0.1)。目前有两种方案可以暂时解决这个问题。
1. 偷梁换柱:将SourceCode人为替换掉
    我们可以在我们的SDK目录下找到 sources目录,这里面存放的是我们所下载的各个系统版本的源码资源,找到发生错误的源码资源,再用正确的资源替换掉。比如针对我们上面6.0(API 23)系统被错误使用8.0(API 26)的问题,我们进入到sources目录,将android-26目录名称改为android-26-ori,再复制一个android-23,将复制出来的目录改为android-26。之后重启Android
Studio进行debug就会发现可以正常对应了,强烈推荐使用该方法。另外如果发现sources中没有我们要找的版本,那就说明我们还没有下载该版本的sourcecode,这需要需SDK中将对应的sourcecode下载一下即可。
2. 改头换面:将配置文件中的compileSdkVersion和buildToolsVersion都改为指定API
    该方法需要我们将build.gradle中的配置进行修改,使其改为我们设备对应的版本。该方法适用性有限,因为改完之后常常会出现一堆的编译报错,而且对于大工程来说,这种改编译版本的方法代价实在太大,所以这里并不是十分推荐。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: