有时(大约50%的时间),在调试Android应用程序时,为了进入一个功能,我使用F5(F6用于翻阅它)但它没有做任何事情
有时,常规调试键都不起作用(F5,F6,F7,F8,也许其他我也不知道)。
目前,解决此问题的唯一方法是从“Debug”视图中选择当前线程(显示每个线程的当前堆栈),然后按F5键。当情况更糟(例如,无法使用内容辅助)时,我重启eclipse。
说到线程,我注意到如果我有多个线程在运行,有时当我尝试更进一步时,它会转到另一个线程,这很烦人,因为我失去了对当前线程的集中。我知道它确实有道理,但它真的很烦人,特别是如果我考虑到有多个线程。
为什么会发生这些事情,我该如何解决?
注意:我有Eclipse,ADT和Android SDK的最新版本。在设备和模拟器上都会出现问题。
答案 0 :(得分:4)
您无法控制线程的执行模式,因为它们不是按顺序运行,而是调试器。
我遇到了在后台运行的线程和异步操作的类似问题。
我如何管理它:
android.os.Debug.waitForDebugger();
。它会自动带你到那里并强制调试器停在这里。从那以后,你可以继续进行调试。<强>注意事项强>
在启动应用程序之前不要忘记对此行进行注释,否则会导致无休止的等待,因为它也会在实际设备中进入调试模式。
此外它不是Eclipse的错,它纯粹是因为它开始在自己的环境中执行时的线程性质。 Visual Studio与线程的行为相同。
答案 1 :(得分:2)
您可能会尝试重置您的视角(以防万一您不想移动某些内容)。
这可以通过以下方式在Debug透视图中完成:
右键单击Debug Perspective(Eclipse的右上角“zone”)并选择“Reset
”
切换到Debug Perspective并单击菜单Window->Reset Perspective...
答案 2 :(得分:1)
有时,常规调试键都不起作用(F5,F6,F7,F8,也许是其他我不了解的)。
这些键都不会在调试视图以外的视图中工作。这是设计的。
当情况更糟(例如,无法使用内容辅助)时,我重启eclipse。
你有一个错误的eclipse安装或错误的键盘。阅读完其他评论后,我对此表示肯定。我的插件搞砸了我的eclipse安装,可以与此相关。在尝试快捷方式之前,请确保您的eclipse代码窗口具有焦点。这也可能导致问题。如果所有其他方法都失败了,请尝试移动到另一个版本的eclipse以尝试找出问题。
我有一个奇怪的错误,对于eclipse有一段时间,当我按退格键时,它会删除同一行上先前打开的文件中的字符。这是可怕的,我不得不重新安装并转移到另一个版本的日食(我不记得以前的版本是什么)。可能是你的情况类似。
说到线程,我注意到如果我有多个线程在运行,有时当我尝试更进一步时,它会转到另一个线程,这很烦人,因为我失去了对当前线程的集中。
我知道痛苦。不幸的是,没有办法解决它。 Eclipse在挂起线程时不考虑断点的优先级。看看这个相关的问题 - How to deprioritize Java testrunner in Eclipse breakpoints?。如果您可以设置conditional breakpoints以防止调试器移动到另一个线程,那将有所帮助。
答案 3 :(得分:0)
我找到了一个很好的线程,它解释了如何在Eclipse中完成Debug with Step Filters。可以找到该帖子here。由于显然这是日食中的一个问题,并且有更多的人遇到它,这是暂时的解决方法:
您可以将Eclipse Java调试器配置为不进入这些调试器 通过配置“步骤过滤器”来完成代码。
- 转到Windows - &gt;偏好 - &gt; Java - &gt;调试 - &gt;步骤过滤。
- 选中“使用步骤过滤器”。
- 检查屏幕上的相应选项。您可以添加与您自己的代码库相关的部分。
- 点击“应用”。
醇>
看看这对你有帮助。
答案 4 :(得分:0)
在我的情况下,键被分配来执行与android studio无关的操作,例如增加音量,所以我重新配置文件/ settings / keymap以重新配置什么键是什么。