在调试Android程序时想跟进到SDK中的源码调试,但发现跟进去之后断点所在行有时根本没有一句代码也能中断,导致源码显示错乱的根本原因是:你的程序采用的编译器版本和你的虚拟机版本不同,我的虚拟机版本是4.0.4的(图1),但是编译器是API 23:Android 6.0的(图2),所以就出现这个问题。
以下是图1:
以下是图2:
解决方法有3种:
1:将虚拟机升到API23:Android 6.0版本,像上图采用API23:Android 6.0的编译器,那么你就安装6.0版本的虚拟机,但Android 6.0虚拟机开机太慢了,我忍受不了安装6.0的虚拟机,所以不推荐。
2:将编译器降到API14:Android 4.0版本,但这样你的Activity不能继承AppComActivity类了,而且程序会报一大堆错误,当继承Activity,并且去掉AppCom包的依赖,就可以复错误,这样做不能兼容低版本的安卓系统,所以也不推荐。
3:虚拟机和编译器都不用动它,欺骗Android Studio让他在6.0的编译器环境下去找4.0版本的源码,方法:WIN7下修改C:\Users\Administrator\.AndroidStudio1.4\config\options\jdk.table.xml文件,在<name value="Android API 23 Platform" />节点下找到<sourcePath>节点,修改它的源码路径为android-14(Android 4.0)的对应源码路径,如果没有源码需要用SDK Manager下载4.0源码,如图3