5

有时(大约 50% 的时间),在调试 Android 应用程序时,为了进入一个函数,我使用 F5(F6 用于遍历它)但它什么也没做

有时,常规调试键都不起作用(F5、F6、F7、F8,也许其他我也不知道)。

目前,克服这个问题的唯一方法是从“调试”视图(显示每个线程的当前堆栈)中选择当前线程,然后按 F5 。当情况更糟时(例如,无法使用内容辅助),我重新启动 eclipse。

说到线程,我注意到如果我有多个线程正在运行,有时当我试图走得更远时,它会转到另一个线程,这很烦人,因为我失去了对当前线程的注意力。我知道这确实有些道理,但它真的很烦人,尤其是如果我考虑到有多个线程。

为什么会发生这些事情,我该如何解决?

注意:我有 Eclipse、ADT 和 Android SDK 的最新版本。该问题出现在设备和模拟器上。

4

5 回答 5

4

您无法控制线程的执行模式,因为它们不按顺序运行,但调试器可以。

我在后台运行的线程和异步操作中遇到了类似的问题。

我如何管理它:

  • 我所做的是在没有线程的情况下运行相同的代码,并在确认后将其放入线程中
  • android.os.Debug.waitForDebugger();在你的线程中使用。它会自动将您带到那里并强制调试器在此处停止。从那里开始,您可以继续进行调试。

预防措施

在启动应用程序之前不要忘记注释此行,否则会导致无休止的等待,因为它也会在真实设备中进入调试模式。

此外,这不是 Eclipse 的错,纯粹是因为线程的性质,因为它开始在自己的环境中执行。Visual Studio 的行为与线程相同。

于 2013-04-03T06:03:07.213 回答
2

您可能会尝试重新设置您的视角(以防万一您移动了某些东西而不想要)。

这可以通过以下方式在 Debug 透视图中完成:

  1. 右键单击 Debug Perspective(Eclipse 的右上角“区域”)并选择“ Reset

  2. 切换到调试透视图并单击菜单Window->Reset Perspective...

于 2013-04-03T22:09:14.503 回答
1

有时,常规调试键都不起作用(F5、F6、F7、F8,也许其他我也不知道)。

这些键都不能在调试视图以外的视图中工作。这是设计使然。

当情况更糟时(例如,无法使用内容辅助),我重新启动 eclipse。

您的 Eclipse 安装有问题或键盘有问题。在阅读了您的其他评论后,我对此持肯定态度。我有插件弄乱了我的 Eclipse 安装,并且可以与此相关。在尝试使用快捷方式之前,请确保您的 Eclipse 代码窗口具有焦点。这也可能导致问题。如果所有其他方法都失败,请尝试移至另一个版本的 eclipse 以尝试隔离问题。

我有一段时间的 Eclipse 有这个奇怪的错误,当我按下退格键时,它会删除同一行先前打开的文件中的字符。这太可怕了,我不得不重新安装并转移到另一个版本的 eclipse(我不记得以前的版本是什么)。可能你的情况类似。

说到线程,我注意到如果我有多个线程正在运行,有时当我试图走得更远时,它会转到另一个线程,这很烦人,因为我失去了对当前线程的注意力。

我知道痛苦。不幸的是,没有办法绕过它。Eclipse 在挂起线程时不考虑断点的优先级。看看这个相关的问题 - How to deprioritize Java testrunner in Eclipse breakpoints? . 如果您可以设置条件断点以防止调试器移动到另一个线程,那将有所帮助。

于 2013-04-03T06:42:37.200 回答
0

我找到了一个很好的线程,它解释了如何在 Eclipse 中使用 Step Filters 进行调试。该线程可以在这里找到。由于显然这是 eclipse 中的一个问题,并且越来越多的人遇到它,所以这是目前的解决方法:

您可以通过配置“Step Filter”来配置 Eclipse Java 调试器,使其不单步执行这些代码。

  1. 转到 Windows -> 首选项 -> Java -> 调试 -> 步骤过滤。
  2. 选中“使用步骤过滤器”。
  3. 检查屏幕上的相应选项。您可以添加与您自己的代码库相关的部分。
  4. 点击“应用”。

看看这是否对您有帮助。

于 2013-03-29T09:10:01.250 回答
0

在我的情况下,键被分配做与 android studio 无关的事情,例如增加音量,所以我重新配置文件/设置/键盘映射以重新配置什么键做什么。

于 2016-03-20T15:42:37.863 回答