Я запускаю приложение для 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
Почему в этой ситуации не работает просмотр объекта отладки (тот, который появляется при наведении курсора на переменную)?
Просто поставьте свой пункт перерыва после того, как ваши заявления, подобные этому
Точка останова должна быть здесь..