【发布时间】:2020-08-30 08:06:23
【问题描述】:
我遇到了一个奇怪的问题,即 Android 调试器没有在我的一个文件中的断点处停止。我有两个类/文件 Foo 和 Bar 都在同一个模块但不同的包中。出于某种原因,调试器会跳过 Bar.java 文件中设置的所有断点,而它会在 Foo.java 中的所有断点处停止。
下面是 Foo.java 文件中调用 Bar.java 文件中的方法的方法示例。
private void foo(String str){
if (str.length > 0) {
Bar.getInstance().bar();
}
}
当我在foo() 方法中的任何行上设置断点时,调试器会停止它们,但在 Bar.java 文件或bar() 方法中设置的任何断点都不会被识别或停止。
我很肯定代码执行到了Bar.getInstance().bar() 行,因为我可以在那里(在 Foo.java 文件中)设置一个断点,并且我还可以在 if 语句中设置一个断点并继续前进,直到我到达Bar.getInstance().bar() 行。
更奇怪的是,我能够使用调试器进入Bar.getInstance().bar() 并查看所有Bar 单例变量的值,除了它们的名称只是字母(附上截图)。
通常,当您使用调试器进入某些内容时,IDE 会移动到您正在进入的任何文件中的行,以便您可以长时间跟踪,在这种情况下,它只是停留在原来的位置。我也尝试过让调试器在foo() 的断点处停止,然后单击“恢复程序”按钮(绿色三角形指向右侧),看看它是否会在bar() 的断点之一处停止,但这不会也可以工作。
然后,我认为唯一相关的其他信息是所有这些都发生在 IME 服务内部。 foo 类是扩展 InputMethodService 并在我的应用程序清单文件中声明的类。
非常感谢任何帮助!
【问题讨论】:
标签: java android android-studio debugging breakpoints