【问题标题】:Android Studio: Create well-behaved Exception BreakpointAndroid Studio:创建行为良好的异常断点
【发布时间】:2014-04-29 12:10:53
【问题描述】:

我刚刚使用 Android Studio 制作了一个未经修改的空 Android 应用。我正在尝试设置异常断点。

默认异常断点重复触发。所以我添加了!(this instance of java.lang.ClassNotFoundException) 作为条件,正如this question 中所建议的那样。

但是,我仍然被我的异常打断,这次是一个模态对话框:

我如何创建一个异常断点,直到发生异常事件?

编辑澄清:我不想为特定异常设置断点,我想要一个可以随时保留的通用异常断点。

【问题讨论】:

  • 对于谷歌索引,这里有一些嵌入图像中的文本:断点条件错误处理VM事件的问题:断点:'任何异常'错误:无法评估断点条件'!(this instanceof java.lang. ClassNotFoundException)' 原因:找不到当前堆栈帧的源类是否要在断点处停止?
  • 这对回答您的问题没有多大帮助,但有一个错误code.google.com/p/android/issues/detail?id=59136 我还没有开始调查。
  • 我在使用 android studio 1.2 时仍然遇到这个问题。类过滤器似乎不起作用,并且当我使用 ClassNotFound 异常时收到上述错误消息。有什么想法吗?

标签: java android debugging intellij-idea breakpoints


【解决方案1】:

这里的关键是结合配置使用类过滤器来中断所有错误,将它们设置为非常高级的命名空间。

  1. 选中类过滤器复选框以启用类过滤。然后单击 ...(省略号)按钮打开 Class Filters 对话框。
  2. 通过单击(添加模式)按钮指定类命名空间模式。输入:

    • com.myapp.*(将其替换为您应用的命名空间前缀)
    • java.*
    • android.*
    • 根据需要添加任何其他命名空间(例如 3rd 方库)

  1. 按确定

here for full instructions

【讨论】:

  • @MooingDuck 在断点下,你是否同时检查了“异常断点”和“Java 异常断点”?
  • 啊,我可能也检查了“异常断点”,这会导致问题。我不确定。
  • 我对此进行了更深入的研究。我发现只有在启动阶段第一次开始调试应用程序时才会遇到这种情况。异常通常位于 BootClassLoader 中的“java.lang.ClassNotFoundException”。处理此问题的一种方法是将“!(this instanceof BootClassLoader)”作为“Java Exception Breakpoints”->“Any exception”的断点窗口上的条件表达式的一部分。另一种方法是在不调试的情况下启动应用程序,然后在初始化后附加。最后,您可以取消选中“Caught exception”,因为正在处理异常。
【解决方案2】:

Android Studio 本质上是 IntelliJ IDEA。您必须使用 Breakpoints 屏幕左上角的 + 按钮为特定异常添加断点。

详情请参阅以下主题: How to use Intellij Idea's exception breakpoints

【讨论】:

    猜你喜欢
    • 2011-08-01
    • 2014-09-03
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2015-05-22
    • 1970-01-01
    相关资源
    最近更新 更多