我遇到一个奇怪的问题,即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
的类,并在我的应用的清单文件中声明。
非常感谢您的帮助!
我遇到一个奇怪的问题,即Android调试器没有在我的文件之一的断点处停止。我有两个类/文件Foo和Bar,它们都在同一模块中,但包不同。 ...
我有点想通了。原来在我的应用程序gradle文件中minifyEnabled
被设置为true
,并使用foo
和bar
类将该模块取消设置。我将两者都设置为false
,它解决了该问题。不知道为什么它在一个文件中可以正常工作,而在另一个文件中却不能正常工作,因为它们在同一个模块中,但是我想它已经解决了,足以让我继续工作。