Статические конечные переменные отображаются как ноль и 0.0 в режиме отладки

1

Я запускаю приложение для 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

Почему в этой ситуации не работает просмотр объекта отладки (тот, который появляется при наведении курсора на переменную)?

  • 0
    Я пытался с тем же, что вы объяснили. Но я получаю значение в представлении объекта отладки
  • 0
    Какая версия Eclipse и Android SDK?
Показать ещё 1 комментарий
Теги:
debugging
interface
constants

1 ответ

3
Лучший ответ

Просто поставьте свой пункт перерыва после того, как ваши заявления, подобные этому

  • зависание над DOUBLE_CONST выше показывает DOUBLE_CONST = 0.0
  • зависание над STRING_CONST выше показывает STRING_CONST = null

Точка останова должна быть здесь..

  • 0
    someBreakPointedMethod (); // Здесь я установил точку останова, но они все еще не появлялись .. Я предполагаю, что это была проблема, которая была решена, когда я чистил, я не знаю, отладчик иногда странный

Ещё вопросы

Сообщество Overcoder
Наверх
Меню