静态最终变量在调试模式下显示为null和0.0

时间:2011-12-20 06:04:49

标签: android eclipse debugging interface constants

我在调试模式下运行我的Android应用程序,其中我将一些常量定义为生成在static final中的Interface变量。

当我在Eclipse中处于调试模式时,我将鼠标悬停在这些常量上以查看其内容,我看到null表示字符串,0.0表示我的双打。

界面如下所示:

public interface IMyConstants {
    public static double DOUBLE_CONST = 4.2235234;
    public static String STRING_CONST= "Should be some string";
}

此接口位于类路径中包含的外部非Android项目中。

来自其他引用的Android项目的其他常量似乎在向我提供他们的信息,并且它们以完全相同的方式声明。

我想知道调试器是否很难阅读这些因为项目是非Android的,因为这是我最初可以看到的唯一区别。

在我的断点之前,我确实将常量DOUBLE_CONST的值输出到LogCat,并得到了正确的值。

此:

// Hovering over any of the constants here do not show their true value in debug

double value = myValue / IMyConstants.DOUBLE_CONST; 
Log.i("MyProject", "IMyConstants.DOUBLE_CONST: " + IMyConstants.DOUBLE_CONST);
Log.i("MyProject", "IMyConstants.STRING_CONST: " + IMyConstants.STRING_CONST);

/*
 * The breakpoint is here.. 
 * hovering over DOUBLE_CONST above shows DOUBLE_CONST = 0.0
 * hovering over STRING_CONST above shows STRING_CONST = null
 */
someBreakPointedMethod();  

都给:

12-19 23:32:54.316: INFO/MyProject(23806): IMyConstants.DOUBLE_CONST: 4.2235234
12-19 23:32:54.316: INFO/MyProject(23806): IMyConstants.STRING_CONST: Should be some string

为什么调试对象视图(将鼠标悬停在变量上时弹出的视图)不能在这种情况下工作?

1 个答案:

答案 0 :(得分:3)

请在你的陈述之后加上你的断点 像这样

  • 悬停在上面的DOUBLE_CONST上显示DOUBLE_CONST = 0.0
  • 将鼠标悬停在上面的STRING_CONST上显示STRING_CONST = null

断点应该在这里..