有时(大约 50% 的时间),在调试 Android 应用程序时,为了进入一个函数,我使用 F5(F6 用于跳过它)但它什么也没做
有时,常规调试键都不起作用(F5、F6、F7、F8,也许其他我也不知道的键)。
目前,解决这个问题的唯一方法是从“调试” View (显示每个线程的当前堆栈)中选择当前线程,然后按 F5。当情况更糟时(例如,无法使用内容辅助),我会重新启动 eclipse。
说到线程,我注意到如果我有多个线程在运行,有时当我尝试更进一步时,它会转到另一个线程,这很烦人,因为我失去了对当前线程的注意力。我知道这确实有一定道理,但这真的很烦人,尤其是当我考虑到有多个线程时。
为什么会出现这些问题,我该如何解决?
注意:我有最新版本的 Eclipse、ADT 和 Android SDK。设备和模拟器都会出现这个问题。
最佳答案
您无法控制线程的执行模式,因为它们不按顺序运行,但调试器可以。
我在后台运行的线程和异步操作方面遇到过类似的问题。
我是如何管理它的:
- 我所做的是在没有线程的情况下运行相同的代码,并在确认后将其放入线程
- 在您的线程中使用
android.os.Debug.waitForDebugger();
。它会自动将您带到那里并强制调试器在此处停止。之后您可以继续进行调试。
注意事项
不要忘记在启动应用程序之前注释这一行,否则会导致无休止的等待,因为它也会在真实设备中进入 Debug模式。
此外,这不是 Eclipse 的错,这纯粹是因为线程的本质,因为它开始在自己的环境中执行。 Visual Studio 的行为与线程相同。
关于android - 在 Eclipse 上调试时无法使用 F5 步入功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258935/