我有以下build.gradle设置。
compileSdkVersion 21
buildToolsVersion '21.1.1'
defaultConfig {
minSdkVersion 18
targetSdkVersion 21
}
问题在于,当我在KitKat设备(Genymotion或Device上的19)上进入Android SDK源时,它仍然坚持步入Android-21源而不是19。
由于我有v21代码,因此更改上述任何设置只会破坏我的应用程序的编译。所有19个调用都得到了正确保护,代码在19上工作,只是源代码链接不正确。
提前干杯Stack Overflow兄弟姐妹们!
答案 0 :(得分:10)
编辑(2016年7月1日):
Android Studio 2.2修复了它,并将跳转到与您实际运行的设备相对应的API级别的源(只要您安装了这些源)。宣布here。
以下解决方法对我有用:
File
> Project Structure
,找到您的app
模块(或/和/或任何其他模块),并将Compile Sdk Version
更改为与您正在调试的设备(即19)匹配的模块。 答案 1 :(得分:6)
正如另一个答案所述,它已在Android Studio 2.2(bug report)中得到修复。
然而,即使在Android Studio 3.0中,它仍然不适合我 它只在我检查了"显示替代源切换器"之后才开始工作。在“设置”中。
答案 2 :(得分:1)
如果您尝试在运行Android 5.0.x Lollipop映像的模拟器上调试源代码,会发生什么?它是否突出了正确的来源?我一直在努力解决这个问题,我得出的结论是问题是由于硬件供应商对android源的定制。
我一直试图在运行4.4.2 KitKat的三星设备上逐步浏览android源代码。有些文件排成一行,有些文件排成几行,其余文件都没有出现问题。 Instrumentation.java是我经常发现自己的东西。它大概是5行左右。
那么为什么我认为供应商定制了android源码呢?我在ActivityThread.java和Instrumentation.java中完成了应用程序启动。即使源不排队,调试器仍将正确步进。我在grepcode.com上用android源代码交叉引用了我的例程。最后,我看到调试器进入函数调用,该函数调用在grepcode上发布的任何java文件版本中都不存在。
以下是一个具体示例:ActivityThread.HandleLaunchActivity。我亲眼目睹了调试人员进行这些调用
unscheduleGcIdler : present in android source
intent.getWindowStyle : not present. Samsung customization?
handleConfigurationChanged : present
如果我是对的,那么调试器应该正确地逐步调试模拟图像,因为它不包含供应商自定义代码。