【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中的配置进行修改,使其改为我们设备对应的版本。该方法适用性有限,因为改完之后常常会出现一堆的编译报错,而且对于大工程来说,这种改编译版本的方法代价实在太大,所以这里并不是十分推荐。
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中的配置进行修改,使其改为我们设备对应的版本。该方法适用性有限,因为改完之后常常会出现一堆的编译报错,而且对于大工程来说,这种改编译版本的方法代价实在太大,所以这里并不是十分推荐。
相关文章推荐
- 解决Android Studio中Gradle版本不对应无法调试app的问题
- android studio2.2.3查看android版本25源码的问题
- android开发资源网站,下载各版本SDK源码、Android Studio、NDK等
- 如何使用Android Studio开发/调试Android源码
- Android开发同学请注意啦,Android Studio2.1.1版本发布更新, 解决重大安全问题.
- android studio 中 android 源码 不能导航的问题
- 下载android 源码对应的kernel版本
- 如何使用Android Studio开发/调试Android源码
- Android版本和API Level对应关系 以及ADT中源码的关联
- Android Gradle plugin与Gradle 版本对应问题
- Android对应关系——版本、源码和API Level对应关系
- 关于Android 4.4 后没有WRITE_SMS权限以及指定Android Studio2.3.3 SDK版本的问题
- 下载android 源码对应的kernel版本
- 如何使用Android Studio开发/调试Android源码
- 如何使用Android Studio开发/调试Android源码
- 使用ddms调试android源码相关问题小结
- 编译Android源码时出现的java版本的问题
- 如何使用Android Studio开发/调试Android源码
- Android 编程技巧之 ----- Android Studio 关联任意版本源码
- 如何使用Android Studio开发/调试Android源码