我正在尝试调试我的Android应用。当调试器到达View.java文件时,我收到消息“源代码与字节码不匹配”。我可以看到调试器位于文件的错误部分。有人知道如何解决这个问题吗?
我正在Android 10(API 29)设备上进行调试。在Android Studio偏好设置->外观和行为->系统设置-> Android SDK中,我确保所有内容都是最新的。我还多次清理和重建,删除缓存,重新启动Android Studio和设备,卸载/重新安装,将Android Studio更新到4.0.1。在“模块设置”中,“编译Sdk版本”为29,目标SDK版本和最低SDK版本为29。没有任何帮助或影响。在类似的帖子中建议了其中许多步骤。
它尝试打开的View.java文件位于:〜/ Library / Android / sdk / sources / android-29 / android / view / View.java。这应该是正确的文件,但是当我收到错误消息时,调试器位于文件的错误部分。
戴上黑帽,让我们假设笔记本电脑的View.java在该API级别上是正确的:我的手机可以运行非标准代码吗,有什么方法可以检测出该错误或将其排除?
答案 0 :(得分:0)
我想我知道发生了什么,当Android SDK文件发生此问题时,我有解决方案。令人恐惧的是,Android SDK平台已更新至修订版5,但源软件包未更新。它仍在修订版1中!为什么发生这种情况,我无法解释:一个合理的人会期望两者保持同步。此屏幕快照显示了源代码与Android Studio下载的二进制文件不匹配:
唯一的解决方法是手动下载所需文件,然后在SDK源目录中手动对其进行修补。这很丑陋,没有必要,但是如果您真的想逐步浏览特定的SDK文件,则必须这样做。
这是我遵循的步骤:
我希望这会在将来对其他人有所帮助。我花了很多时间来解决这个问题,我衷心希望其他人不必浪费时间。 Google需要使源软件包与发行软件包保持一致。查看所有过去的SDK版本,似乎没有任何源软件包与最新版本同步。调试SDK文件的另一种丑陋方式是使用与版本1原始程序包匹配的版本1 SDK发行版。