在进行 Android 开发时,如何在 AsyncTask 中使用 Eclipse 调试器?

发布于 10-14 02:26 字数 413 浏览 4 评论 0原文

我正在 Eclipse 中运行 ADT(Android 开发工具),并通过在 MainMenu.oncreate(类 Activity)中放置断点来验证我的调试器是否正常工作。但是当我将它放在 AsyncTask.doInBackground 的第一行时,它永远不会命中它。我知道它正在运行,因为我在 AsyncTask 中放置了一条 Log 语句,并且它显示在 LogCat 中。任何帮助将不胜感激,因为我更喜欢调试器而不是日志记录。

我的版本:

Eclipse SDK Version: 3.6.1  
Build id: M20100909-0800

alt text

I'm running ADT (Android Development Tools) in Eclipse and verified that my debugger is working by putting a breakpoint in MainMenu.oncreate (class Activity). But when I put it in the first line of my AsyncTask.doInBackground, it never hits it. I know it's running because I put a Log statement in the AsyncTask and it shows up in LogCat. Any help would be appreciated as I prefer the debugger over the logging.

My versions:

Eclipse SDK Version: 3.6.1  
Build id: M20100909-0800

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

找回味觉2024-10-21 02:26:22

将以下代码片段放在 doInBackground 的开头:

android.os.Debug.waitForDebugger();

然后,当您在该线程中设置断点时,Eclipse 会找到它。

Put the following code fragment in the beginning of doInBackground:

android.os.Debug.waitForDebugger();

Then when you set a breakpoint in that thread, eclipse will find it.

那支青花2024-10-21 02:26:22

除了 sargas 的答案之外,因为在运行模式下,如果您忘记注释该行,您可能会收到错误,您可以使用以下内容:

if(android.os.Debug.isDebuggerConnected())
    android.os.Debug.waitForDebugger();

所以它会自行处理。

in addition to sargas's answer , because in Run mode you could get an error if you forget to comment that line, you could use the following:

if(android.os.Debug.isDebuggerConnected())
    android.os.Debug.waitForDebugger();

so it takes care of itself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文