16

使用 Intellj-idea 我正在尝试调试 Android 源 API 17,但是当我在平台源中设置断点时,它们在运行时被忽略。在调试时查看断点,其中有一个交叉点,并显示一条消息,指出“在类 android.view 的第 15,508 行找不到可执行代码”

我已经尝试针对具有 API 17 集的模拟器以及具有 Android 4.2.2 的手机运行,但两者都不起作用。我可以对方法进行某种调试,但光标会跳来跳去。

所以我猜测没有调试信息以及一些优化。所以我的问题:

有没有一种方法可以从我的应用程序的角度正确调试 Android 平台并设置在其中工作的断点?也许是一个使用调试信息构建的模拟器?

任何帮助,将不胜感激?

问候李

4

1 回答 1

3

这取决于您尝试调试的应用程序:您自己的应用程序,系统应用程序,例如android.process.acore.

调试在您自己的应用程序中运行的平台源

主要问题是您在计算机上下载的平台源的行号必须与设备上运行的相匹配。您最好的选择是在 Google Nexus 设备(例如 Nexus 5 或 Nexus 7)上进行调试,因为它应该运行与您使用 Android SDK 下载的 Google 发布的源代码完全相同的编译版本。只需将源路径添加到 IntelliJ 中的 sdk,附加调试器并设置断点。确保选择与设备上运行的 API 级别源相同的源。那应该这样做。

调试在系统应用程序中运行的平台源

您将需要eng构建 Android 平台来调试系统进程。如果您之前还没有构建和安装过 Android 平台,那么这需要大量的工作并且需要解锁的引导加载程序。也许有 cyanogenmod 的预eng构建版本或可以下载的东西,但经过一些琐碎的谷歌搜索后我找不到任何东西。您也可以eng自己构建 AOSP 并在您的机器上运行模拟器。如果您有雄心壮志,请参阅从源代码构建 Android 后运行模拟器AOSP 网站上的“选择目标”部分,了解有关构建您自己的构建的信息。eng

于 2013-06-02T04:33:22.980 回答