【发布时间】:2020-05-23 21:36:04
【问题描述】:
我有以下 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 兄弟姐妹们提前干杯!
【问题讨论】:
-
请检查您的 AndroidManifest.xml 文件并确保这些值也未在此处定义。有时 sdk 版本和构建工具也在清单中定义。
-
我不认为这一定是受支持的。如果您想在 API 19 上进行调试,也许最简单的方法是(暂时)针对它进行构建。或者您可以尝试使用源目录中的符号链接来伪造它(即,指定 api 21 以便构建 jar 是正确的,但将它的源 jar 符号链接到 api 19 之一)或一些晦涩的 IDE 设置。 为什么需要追踪 Android 本身的源头? 这应该很少需要,请记住,很多功能位于 IPC 的另一端,您无法追踪无论如何。
-
@ChrisStratton :当您进入驻留在设备上的 android.jar(19) 时,您应该进入构建它的源代码,而不是构建我的应用程序的源代码反对。 “为什么要追溯安卓本身的源头?”一大堆理由。我每天至少两次进入 SDK(仅因为这个问题在 21 日)。现在我试图提供跨 sdk 支持,它们在后台运行不同。我想通过逐步了解原因。
-
您希望调试器如何管理它?如果这是一个真实且紧迫的需求,而不是在调试器中低头,您可能会更好地查看源版本的差异 - 当然 假设 Android 实际安装在您的device 反映了上游源的相应版本。
-
@ChrisStratton 设备上的 android 是 AOSP,所以在我开始支持 v21 之前,它已正确进入源代码。我的调试器怎么知道 android.jar 是 v19?好问题....
标签: android debugging android-studio