使用Eclipse进行Android调试-没有断点

9
我正在尝试在模拟器或设备上调试一个简单的Android应用程序,但是我无法使调试器停止在我设置的任何断点上。我已经结合了其他帖子和整个网络中的建议并尝试了所有建议(将debuggable:“true”添加到清单中,停止并启动adb,清除所有内容,确保我使用调试按钮而不是运行按钮等等)。在Debug视图中,我可以看到线程,在DDMS中它显示我正在调试的设备旁边的调试图标。我确实看到了我设置断点的蓝色点,并且Debug视图列出了它们并说它们是活动的。
我在断点之前放置了警报以验证代码是否被执行。
开始变得疯狂了。还有其他建议吗?我一定错过了某些简单但不明显的东西。
更新:非常感谢迄今为止的回复。不幸的是,它们没有解决我的问题。我按照调试指令进行了操作,并在手机上打开了调试功能。此外,当启动时,我确实在手机上看到“等待调试器”的警报。总体而言,所有内容都表明我正在调试(包括获取我添加的logcat输出)。它只是不会停在我添加并列在Debug视图中的断点上。还要再次强调-在设备和模拟器上调试时会发生这种情况。我注意到的一件事是,当我启动调试器时,我已经设置了它以打开Android设备选择器。在那里,“debug”列为空白 - 但是如果模拟器正在运行,则调试列确实会说“是”。此外,控制台指出正在尝试连接到调试器。是否应该有一个控制台日志表明调试器成功连接?我没有看到这个。
更新20120914:我已经离开这段时间,并且以前已经放弃了。回来尝试解决这个问题。它仍未解决。以上所有内容仍然是当前的 - 但是我还注意到了另一件事。我在主活动上设置了类加载断点,它确实停在那里。它只是不会停在任何行断点上。我刚刚更新到最新的JDK 1.7.0_07,Android SDK 20,ADT插件20.0.3。我已经使用logcat输出消息并在此行上设置了断点。我在logcat中看到消息,所以我知道代码正在被执行。 debig视图中的调试窗口也显示具有多个线程的android应用程序,并且DDMS视图中的设备窗口显示具有绿色bug图标的应用程序。
还有一件事-当调试器运行时,行断点子弹没有叠加在它们上面的勾选标记(类加载断点有!)。我猜这是根本原因-但我不知道为什么它们没有得到这个标记。(顺便说一句,跳过断点也没有设置-断点没有通过它们的线)。

如果有新的建议,将不胜感激。我在这个问题上花费了很多时间。一定是有些明显的问题我没有看到。

6个回答

5

现在我写这篇文章感觉有点傻。但我最终解决了问题。问题是您无法在JavaScript代码中设置断点。我无意中遗漏的部分是,我正在使用PhoneGap编写Android应用程序。几乎所有的代码都是JavaScript。我太习惯于在Visual Studio中开发.NET Web应用程序,以至于我认为您可以在JavaScript代码中设置断点。Java代码中的断点可以正常工作。无论如何,感谢任何建议。不知道是否有其他.NET开发人员尝试PhoneGap开发 - 但也许这篇文章会对他们有所帮助。


3
Android SDK提供了大部分你需要调试应用程序的工具。这个链接将向你介绍使用的Android调试环境和调试工具
这里还有一个实践教程,调试Android应用程序
如果你想要使用实际的Android手机进行调试,请在你的设备中打开“USB调试”:

设置 > 应用程序 > 开发选项并启用USB调试

Android 4.0:

设置 > 开发者选项

并且使用Log.d和你的Logcat

1
尝试使用jsHybugger: http://www.jshybugger.org/ 来为远程(移动)设备在Eclipse中设置javascript断点。它可以让您设置断点、单步调试、捕获异常并与JS/DOM环境交互。您可以从Eclipse或远程桌面上的Chrome或兼容Chrome的调试器中使用它。它可用于创建自己的webView应用程序。但是,您需要安装一些文件——但可能不比weinre使用复杂。它会广泛地修改JS文件(透明地对用户进行),以启用所有这些调试功能——WebKit实际上应该本地支持javascript调试。

这不是与问题相关的答案。至少我没有看到webview/phonegap/javascript在其他回答中提到过。 - laalto
2
我认为这很相关,因为他最终是在询问如何在应用程序中调试JavaScript(而不是初始问题可能暗示的Java在应用程序中)。这是我发现能够调试(断点/单步)JavaScript(在Eclipse中)的唯一方法。 - Ribo

1
Eclipse有一个调试运行配置。只有使用调试运行配置,应用程序在启动时才会附加调试器。
应用程序启动(在设备/模拟器上)是否暂停一段时间“等待调试器”?如果没有,则您不是使用“调试配置”启动应用程序。它是运行(下拉菜单)配置的左侧按钮。

0

Ribo已经在他的回答中提到了它,但由于这个问题和答案是关于调试Phonegap应用程序的。 你一定要看看weinre(WEb INspector REmote)。 http://people.apache.org/~pmuellr/weinre/docs/latest/

现在,phonegap甚至拥有自己的weinre,融入了phonegap build... http://debug.phonegap.com/

我是这个的忠实粉丝...(请注意,如果您正在本地计算机上使用weinre并尝试通过wifi调试phonegap应用程序...请确保您的本地设备连接到相同的wifi网络!)


0
确保您未勾选“跳过所有断点”(运行 -》 跳过所有断点)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接