Невозможно использовать F5 для входа в функцию при отладке на Eclipse

Иногда (примерно в 50% случаев) при отладке приложения для Android, чтобы войти в функцию, я использую F5 (F6 для этого), но он ничего не делает

Иногда, ни один из обычных отладочных ключей не работает (F5, F6, F7, F8, может быть, другие, о которых я тоже не знаю).

В настоящее время единственный способ преодолеть это – выбрать текущий поток из представления «Отладка» (который показывает текущий стек каждого потока), а затем нажать F5. Когда ситуация еще хуже (например, не удается использовать средство поддержки контента), я перезапускаю eclipse.

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

Почему это происходит, и как я могу их исправить?

Примечание. У меня есть последняя версия Eclipse, ADT и Android SDK. Проблема возникает на обоих устройствах и эмуляторах.

Вы не можете контролировать шаблон выполнения потоков, поскольку они не выполняются последовательно, но отладчик делает это.

Я столкнулся с аналогичными проблемами с потоками и асинхронными операциями, которые выполняются в фоновом режиме.

Как мне это удается:

  • То, что я делаю, запускает тот же код без потока, и после подтверждения я помещаю это в поток
  • Используйте android.os.Debug.waitForDebugger(); В вашей теме. Он автоматически приведет вас туда и заставит отладчика остановиться здесь. Затем вы можете продолжить свою отладку.

Меры предосторожности

Не забудьте прокомментировать эту строку перед запуском приложения, иначе это приведет к бесконечному ожиданию, так как оно также поступит в режим отладки в реальном устройстве.

Более того, это не вина Eclipse, это чисто из-за природы потоковой передачи, поскольку она начинает выполняться в собственной среде. Visual Studio ведет себя одинаково с потоками.

Вы можете попытаться сбросить свою перспективу (на всякий случай, если вы переместили что-то, не желая).

Это можно сделать в перспективе Debug путем:

  1. Правой кнопкой мыши щелкните «Отладка перспективы» (верхняя правая «зона» Eclipse) и выберите « Reset »,

  2. Переключитесь в Debug Perspective и нажав меню Window->Reset Perspective...

Иногда, ни один из обычных отладочных ключей не работает (F5, F6, F7, F8, может быть, другие, о которых я тоже не знаю).

Ни один из этих клавиш не будет работать в представлении, отличном от представления отладки. Это по дизайну.

Когда ситуация еще хуже (например, не удается использовать средство поддержки контента), я перезапускаю eclipse.

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

У меня была эта странная ошибка для eclipse, когда я нажимаю клавишу backspace, она удаляет символы в ранее открытом файле в той же строке. Это было ужасно, и мне пришлось переустановить и перейти к другой версии eclipse (я не могу вспомнить, что было в предыдущей версии). Возможно, ваша ситуация похожа.

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

Я знаю боль. К сожалению, нет способа обойти это. Eclipse не рассматривает приоритет точки останова при приостановке потоков. Взгляните на этот связанный вопрос – как лишить себя экзаменатора Java в контрольных точках Eclipse? , Если вы можете настроить условные точки останова, чтобы предотвратить отладчик от перехода к другому потоку, это поможет.

Я нашел хороший поток, который объясняет, как Debug с Step Filters выполняется в Eclipse. Поток можно найти здесь . Поскольку, по-видимому, это проблема в затмении, и все больше людей сталкиваются с ней, это обходное решение на данный момент:

Вы можете настроить отладчик Java Eclipse, чтобы не входить в эти биты кода, настраивая «Фильтр шагов».

  1. Перейдите в Windows -> Настройки -> Java -> Debug -> Step Filtering.
  2. Установите флажок «Использовать фильтры шагов».
  3. Проверьте соответствующие параметры на экране. Вы можете добавлять части, которые имеют отношение к вашей собственной кодовой базе.
  4. Нажмите «Применить».

Посмотрите, поможет ли это вам.

В моем случае клавишам назначено делать что-то, не связанное с андроид-студией, увеличить объем, например, так что я перенастрою файл / настройки / раскладку, чтобы переконфигурировать, что такое ключ.

Intereting Posts
Добавить в файл android Создание проекта android от jenkins под linux – сборка сбоя, не может найти импортированный файл build.xml Невозможно передать растровое изображение между действиями в android FragmentPagerAdapter не может быть разрешен для типа Скрыть указатель мыши на Android Шифрование, совместимое с Android и C # Как использовать интерактивную консоль Eclipse в отладке Можете ли вы запустить событие, когда Android Dialog будет уволен? Цвет отслеживания Android Seekbar во время выполнения Найти положение растрового изображения в представлении изображения в андроиде при просмотре контейнера в центре Android Volley делает 2 запроса на сервер, когда для политики повторных попыток установлено значение 0 Android VMD MySQL вставляет и показывает диалог Как сохранить текст в режиме просмотра изображений в android? Функции Phonegap, не определенные в приложениях для сборки Phonegap – также pushNotifications не работают Android – Как определить, когда запускается приложение для 3D-вечеринки