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

Закрытие приложения Android при завершении отладки кода

Я только что установил среду dev для существующего приложения для Android. Все, кажется, правильно настроено, я могу создать приложение, добавить точки останова и отладить приложение. Но я заметил какое-то странное поведение, и я не могу найти ничего, связанного с проблемой.

  • Когда я запускаю эмулятор или запускаю приложение на устройстве, я могу ходить, хотя приложение и все работает как ожидалось
  • Когда я запускаю отладчик и объявляю точку останова, точка останова попадает в штраф, и я могу пройти через код.
  • Когда я выхожу из последнего блока кода, у которого была начальная точка прерывания с использованием F7 (шаг за шагом) или F8 (шаг за шагом), приложение закрывается и отладчик останавливается. В Android-мониторе > logcat нет ошибок.
  • Если я делаю тот же набор шагов, но вместо этого использую F9 для возобновления программы, приложение не закрывается, и все работает нормально.

Похоже, что это может иметь какое-то отношение к завершению работы и, возможно, к отладке Android Studio? Я не уверен, хотя, я все еще новичок в разработке Android.

Почему отладчик должен останавливаться так? Есть ли способ убедиться, что вы выполняете следующую точку останова?

Изменить

Я также могу воспроизвести это с помощью нового проекта андроида, добавив точку останова в метод OnCreate и перейдя к нему так, как будто

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);    <------- Breakpoint added here
    setContentView(R.layout.activity_main);

    ......

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}    <------- Application terminates after this line
4b9b3361

Ответ 1

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

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

Ответ 2

Не используйте переключение, когда вы достигаете конца funciton, просто используйте "программу возобновления", затем он перейдет к следующей точке останова.

Ответ 3

Вы можете попробовать лучшее устройство Android, которое могло бы выдерживать нагрузку отладки без сбоя приложения. Это случилось со мной, теперь я использую Nexus 5x, который лучше всего подходит для целей разработки.