我正在尝试在emultor或设备上调试一个简单的Android应用程序,我无法让调试器在我设置的任何断点上停止。我在这里和整个网络上结合了其他帖子并尝试了所有的建议(添加debuggable:“true”到清单,停止并启动adb,全部清除,确保我使用调试按钮而不是运行按钮等) 。在Debug透视图中,我可以看到线程,在DDMS中,它显示了我正在调试的设备旁边的调试图标。我确实看到了设置断点的蓝点,Debug透视图列出了它们并说它们处于活动状态。
我在断点之前发出了警报,以验证代码是否正在执行。
在这里开始变得疯狂。还有其他建议吗?我必须遗漏一些简单但不明显的东西。
更新:我很感谢到目前为止的回复。不幸的是他们没有解决我的问题。我按照调试说明进行了操作,并在手机中打开了调试功能。此外,我确实在启动时看到手机上的“等待调试器”警报。一般来说,一切都说我正在调试(包括获取我添加的logcat输出)。它只是不会停止在我添加的断点上,并在Debug透视图的breakpoints选项卡中列出。还要重申 - 在设备和模拟器上进行调试时会发生这种情况。我注意到的一件事是,当我启动调试器时,我将其设置为启动Android设备选择器。在那里,我的设备的“debug”列是空白的 - 但如果模拟器正在运行,则调试列会说“是”。控制台还指出正在尝试连接调试器。是否应该有一个控制台日志,说明调试器已成功连接?我没有看到这一点。
更新20120914:我已离开这一段时间并且之前已经放弃了。回去尝试解决这个问题。它仍未解决。以上所有内容仍然是最新的 - 但我注意到的另一件事。我在主活动上设置了一个类加载断点,它确实停在那里。它只是不会停在任何断点处。我刚刚更新到最新的JDK 1.7.0_07,Android SDK 20,ADT Plugin 20.0.3。我已经使用logcat输出消息并在此行上设置断点。我在logcat中看到了这条消息,所以我知道代码正在执行中。 debig透视图中的调试窗口也会显示android应用程序,其下面有许多线程,DDMS透视图中的Devices窗口显示应用程序旁边有绿色错误图标。
还有一件事 - 当调试器运行时,线路断点子弹不会在它们上面叠加一个复选标记(Class Load Breakpoint会这样做!)。我猜这是根本原因 - 但我不知道为什么他们没有得到这个。 (顺便说一下,也没有设置skip breakoints - 断点没有穿过它们的线)。
任何新的建议都将不胜感激。我已经花了很多时间在这上面。它一定是显而易见的,我没有看到。
答案 0 :(得分:5)
现在我觉得写这篇文章有点蠢。但我终于解决了我的问题。问题是您无法在Javascript代码中设置断点。我无意中遗漏的部分是我正在使用PhoneGap为Android编写应用程序。几乎所有的代码都是Javascript。我习惯于在Visual Studio中开发.NET Web应用程序我只是假设你可以在javascript代码中设置断点。 Java代码中的断点恰好可以正常工作。无论如何,谢谢你的任何建议。不知道是否有其他.NET开发人员尝试使用PhoneGap开发 - 但是这篇文章可能对他们有帮助。
答案 1 :(得分:3)
Android SDK提供了调试应用程序所需的大多数工具。此链接将向您介绍使用的Android debugging environment and the debugging tools。
此处还有关于debugging an android application.
的实践教程如果您想 使用实际Android手机进行调试 ,请启用" USB调试"在您的设备中:
设置>应用程序>开发并启用USB调试
Android 4.0:
设置>开发者选项
并使用Log.d
和您的Logcat
。
答案 2 :(得分:1)
Eclipse有一个调试运行配置。只有在使用调试运行配置时,调试器才会在启动期间与应用程序连接。
应用程序启动(在设备/模拟器上)暂停一段时间“等待调试器”?如果没有,那么您不是使用“调试配置”启动应用程序。它是运行(下拉)配置左边的按钮。
答案 3 :(得分:1)
尝试使用jsHybugger:http://www.jshybugger.org/在Eclipse中为远程(移动)设备设置javascript断点。
它允许您设置断点,单步执行,捕获异常以及与JS / DOM环境交互。您可以在Eclipse或远程桌面上的Chrome或Chrome兼容调试器中使用它。它可以与创建自己的webView的应用程序一起使用。
但是,你必须安装一些文件 - 但可能没有比weinre更复杂的使用。它确实广泛地修改了JS文件(在运行中,对用户透明)以启用所有这些调试 - webKit真的应该支持本地的javascript调试。
答案 4 :(得分:0)
确保没有检查跳过所有断点(运行 - >跳过所有断点)。
答案 5 :(得分:0)
Ribo在他的回答中已经提到过,但是因为这个问题和答案都是关于调试Phonegap应用程序的。 你当然要看weinre(WEb INspector REmote)。 http://people.apache.org/~pmuellr/weinre/docs/latest/
现在的手机屏幕甚至已经拥有了自己的weinre拥抱在phonegap构建...... http://debug.phonegap.com/
我是这方面的忠实粉丝...(请注意,如果您在本地计算机上使用weinre并尝试通过wifi调试手机应用程序...请确保您的本地设备位于同一个wifi网络上!)< / p>