在Eclipse和Android应用程序中调试时,无法在匿名类中看到最终变量内容

时间:2012-09-19 14:27:23

标签: android eclipse debugging variables final

在debug(eclipse)中,我无法在变量视图中看到变量内容,也无法在Expressions视图中看到变量内容,也无法在显示视图中看到 - 如果变量是在匿名类之外定义的,但调试是在匿名类中。

当我尝试在调试中看到内容时,我收到错误: x无法解析为变量

在以下示例中,无法解析x:

private void someMethod(final Object x) {
  new Runnable() {
    public void run() {
      Log.i(x); // x is printed correctly but cannot be resolved when in Debug
    }
  }.run();
}

这个问题关于eclipse开发环境 - 关于调试Android。 这不是关于final,也不是编译的讨论 - 只是调试。

2 个答案:

答案 0 :(得分:2)

在调试使用线程的应用程序时,我遇到了类似的问题。我想你的应用程序是多线程的,因为我曾经只是在那种情况下面对这样的事情。 这可能是因为当您直接运行程序时,大多数线程将同时启动。但是在调试模式下,你的一个断点设置的线程将保持不变,而其他开始的线程已经完成,或者相反。 这就是人们说调试多线程应用程序比较困难的原因,除非你保持优先级或使线程同步。

希望此信息有所帮助。因此,不是使用断点来停止流程,而是尝试使用sysout或类似的东西打印您需要知道值的值,这就像运行程序但仍然以自己的方式调试:)

答案 1 :(得分:0)

我最近遇到了同样的问题,但是更新android SDK然后重新启动eclipse修复了它。尝试将SDK更新到最新版本。