Android Studio: "Кадр недоступен"?

Я работаю с библиотекой Google Leanback для Android TV, и я пытаюсь выяснить, как лучше всего слушать кнопки на пульте дистанционного управления (особенно те, которые не были записаны с помощью MediaSession).

По этой причине у меня есть точка останова в BaseGridView.dispatchTouchEvent(), и когда я нажимаю одну из кнопок пульта, отладчик действительно перескакивает к этой точке и показывает мне обычную информацию об отладке.

Однако после нескольких (2-5) секунд отладочная информация исчезает и заменяется сообщением "Рамка недоступна".

В других местах отладчик работает нормально, поэтому мне было интересно, считается ли задержка, вызванная отладчиком, ANR, и поэтому приложение закрыто?

В любом случае, есть ли способ обойти это?

Ответ 1

Это сообщение появляется, потому что u задает слишком много точек останова, а потоки ждут данные из других потоков, чтобы решить эту проблему, вы можете отменить некоторые точки останова и дождаться готовности данных...

Ответ 2

сообщение "недоступные кадры" означает, что для отладки больше нет фреймов. Студия андроид-студии четко заявляет о цели окна кадра и фреймов внутри:

Панель "Фреймы" позволяет получить доступ к списку потоков вашего приложения, экспортировать в текстовый файл и настроить презентацию потоков. Для каждого потока вы можете просматривать фрейм стека, просматривать кадры, перемещаться между кадрами и автоматически переходить к исходному коду кадра в редакторе. Вы можете выбрать поток через раскрывающийся список селектора потоков сверху панели. Статус и тип потока указывается специальным значком и текстовой заметкой рядом с именем потока.

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

Ответ 3

Имея ту же проблему, перезагрузка AS работает для меня.

Ответ 4

Когда вы получаете сообщение "frames not available", это означает, что для отладки больше нет фреймов. Кадры являются частью отладки Android Studio, которая дает вам доступ к списку потоков, запущенных в вашем приложении. Это длинный список процессов, которые вы видите в окне отладки. Итак, что происходит, так это то, что Android Studio теряет знания о тех потоках, которые были у него до того, как вы установили точку останова, когда вы выходите. Это может происходить в вашем случае, потому что по умолчанию, когда вы устанавливаете точку останова, она останавливает выполнение всех потоков. Когда вы выходите, нити, которые следуют, полагаются на потоки раньше, чем работают, что закрывает приложение. Поскольку вы устанавливаете точку останова в getCurrentDetails, мое лучшее предположение заключается в том, что он не получил ответа от OKHttp во времени, поскольку это происходит в фоновом потоке. Вы можете попробовать две вещи, чтобы заставить ее работать. Сначала попробуйте щелкнуть правой кнопкой мыши на точке останова и изменить точку останова, остановив все потоки только на этом потоке. Это должно позволить OKHttp получить ответ вовремя перед отключением. Или переместите точку останова дальше и посмотрите, работает ли она.