2013-05-30 55 views
12

使用Intellj-idea我试图调试到Android源代码API 17,但是当我在平台源代码中设置断点时,它们在运行时被忽略。在调试时看到断点时,会出现一条消息,指出“在android.view类的行15,508处没有找到可执行代码”Android平台源代码中的断点

我试过用模拟器运行API 17以及手机与Android 4.2.2,但都不工作。我可以对方法进行排序,但光标会跳转。

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

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

任何帮助将不胜感激?

问候 李

+1

你解决了吗?我认为这个问题值得更多关注! – l33t

+0

奇怪的是我认为这在Eclipse中是可行的,而且我绝对没有Android的调试版本 –

回答

3

这取决于你想什么应用程序调试:自己的应用程序,系统应用程序,如android.process.acore

调试在自己的应用程序

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

调试在系统应用运行平台源

您需要eng构建Android平台调试系统进程。如果您尚未构建并安装Android平台,则需要解锁启动加载程序。也许有构建的氰基修改或可以下载的eng构建,但我找不到任何经过一些简单的谷歌搜索。您也可以自己制作AOSP的eng,并在您的机器上运行仿真器。如果您感觉非常有抱负,请参阅Running emulator after building Android from source"Choose a target" section on the AOSP site了解如何构建您自己的eng版本。