Подтвердить что ты не робот

Невозможно увидеть содержимое конечной переменной внутри анонимного класса при отладке приложения Eclipse для Android

При отладке (eclipse) я не могу видеть содержимое переменных в представлении переменных, а также в представлении "Выражения" или в представлении "Просмотр" - если переменные определены вне анонимного класса, но отладка находится внутри анонимного класса.

Когда я пытаюсь увидеть содержимое в отладке, я получаю сообщение об ошибке: 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. Это не дискуссия о финале, а компиляция - просто отладка.

4b9b3361

Ответ 1

У меня возникли аналогичные проблемы при отладке приложений, использующих потоки. Я предполагаю, что ваше приложение многопоточное, потому что я сталкивался с такими вещами только в этой ситуации. Это может быть связано с тем, что, когда вы запускаете программу напрямую, в основном все ваши потоки будут запускаться одновременно. Но в режиме отладки один из ваших потоков, у которого есть набор точек останова, будет удерживаться, когда другие потоки, которые начались, были бы уже завершены или наоборот. Причина, по которой люди говорят, что отладка многопоточного приложения немного сложнее, если вы не поддерживаете приоритет или не выполняете синхронизацию потоков.

Надеюсь, эта информация поможет. Поэтому вместо того, чтобы останавливать поток с точкой прерывания, попробуйте распечатать значение, в котором вам нужно знать значение с помощью sysout или подобных вещей, что похоже на запуск программы, но ее отладки по-своему:)

Ответ 2

У меня была такая же проблема в последнее время, но обновление SDK android и перезапуск eclipse исправили его. Попробуйте обновить SDK до последней версии.