我一直在使用Android调试器遇到令人沮丧的问题。我有时可以调试和逐步执行代码,然后在代码的其他部分(最近在try / catch情况下),它会转到catch {}块,并且没有关于异常的信息,甚至没有Log。它是控制台。请注意屏幕截图中我是如何进入catch块的,但是没有实时变量上下文,就像它处于正常内容辅助模式一样。观看表达式显示< error(s)_during_the_evaluation>。
任何人都可以解释我遇到的这些令人沮丧的问题吗?调试器在代码的其他部分工作正常的奇怪之处。
答案 0 :(得分:2)
Eclipse + ADT因代理inconsistently而臭名昭着,这通常会让我确保Project > Build Automatically
被检查,然后只需启动Project > Clean...
。
有时甚至没有帮助。所以我只关闭Eclipse并重新启动它。大部分时间都在工作。
即使这没有帮助,我关闭Eclipse,运行CCleaner
并重新启动。 每次都有效。
奇怪但真实。
答案 1 :(得分:1)
您无法始终相信您的调试器;这是一门不精确的科学。当存在多个代码构建步骤(JVM字节码,Dalvik代码等)时尤其如此。调试器通常没有100%的信息来将代码中的位置反向工程回到源代码行。
在上面的例子中,您的代码实际是否抛出了异常?听起来它没有,并且调试器显示在该突出显示的行上的执行,即使它实际上不会执行它。
我更倾向于相信代码的执行 - 如果Log.e()
从未被调用过,那么你根本就没有任何异常。