【问题标题】:How do I use the Eclipse debugger in an AsyncTask when developing for Android?为 Android 开发时,如何在 AsyncTask 中使用 Eclipse 调试器?
【发布时间】:2011-01-22 21:07:54
【问题描述】:

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

我的版本:

Eclipse SDK Version: 3.6.1  
Build id: M20100909-0800

【问题讨论】:

  • 您的清单中是否有 debugging=True ?
  • 是的,我在 AndroidManifest.xml 中做了 。谢谢
  • 我刚刚发现,如果我在doInBackground() 中添加一些Log.d(),调试器会突然开始遇到断点!!

标签: android eclipse debugging android-asynctask adt


【解决方案1】:

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

android.os.Debug.waitForDebugger();

那么当你在那个线程中设置断点时,eclipse会找到它。

【讨论】:

  • 请注意,当 not 调试时,我必须将这一行注释掉才能运行。
  • 我可以看到这显然是能够做到这一点的方法,但即使将它放在 doInBackground 的开头,我也无法达到断点。有谁知道为什么会这样?
【解决方案2】:

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

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

所以它会自己照顾自己。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2020-02-17
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多