android - 在 Eclipse 上调试时无法使用 F5 步入功能

标签 android eclipse multithreading debugging step-into

有时(大约 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/

相关文章:

Android ListView setOnScrollListener

java - 从源代码中打开类文件

java - 如何将 Java 项目集成到动态 Web 项目中

java - Maven 构建失败,如何在 Eclipse 中将 -source 1.5 更改为 -source 7 或更高版本

java - 线程跳过一些迭代

c++ - 在 C++ 中并行运行线程

.net - AutoResetEvent 类型是原子开关的合适选择吗?

android - 如何在运行时添加TextView?

android - 从另一个类访问 onCreate 中的 ArrayAdapter

android - 转发触摸事件并在 android 中保持动力