Как найти ошибку в приложении телефона

Мобильные приложения дают нам возможность быстро получить доступ к полезным сервисам без помощи браузера. Но порой с их запуском возникают проблемы. В частности, вы можете заметить на экране текст, сообщающий о том, что в приложении произошел сбой. Если скрыть оповещение и попытаться снова запустить программу, то с высокой долей вероятности смартфон снова выдаст ошибку. И что же тогда делать? Для начала нам нужно разобраться, чем вызваны сбои приложений, после чего можно смело приступать к изучению методов устранения неполадок.

В приложении произошел сбой — как исправить ошибку. Видели такую ошибку? А мы нашли несколько способов, как ее исправить! Фото.

Видели такую ошибку? А мы нашли несколько способов, как ее исправить!

Содержание

  • 1 Из-за чего случаются сбои приложений
  • 2 В приложении произошел сбой — что делать
    • 2.1 Удалить Android System Webview
    • 2.2 Как остановить приложение на Андроиде
    • 2.3 Как очистить приложение
    • 2.4 Переустановка приложения
    • 2.5 Как удалить обновление приложения

Из-за чего случаются сбои приложений

Из-за чего случаются сбои приложений. Подобная ошибка выскакивает даже в играх. Фото.

Подобная ошибка выскакивает даже в играх

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

  • конфликт программного обеспечения;
  • неправильная установка приложения;
  • установка плохо оптимизированного обновления;
  • переполнение оперативного запоминающего устройства (ОЗУ);
  • повреждение данных кэша.

Стоит отметить, что нередко происходит сбой приложений банков, вызванный отнюдь не ошибками вашего устройства, а неполадками на стороне сервиса онлайн-банкинга. Так, в начале декабря 2022 года случился сбой приложения Тинькофф, и в данной ситуации единственным способом решения проблемы было ожидание, когда проблему решат разработчики софта. То же самое может произойти и с другими программами.

В приложении произошел сбой — что делать

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

Удалить Android System Webview

Этот метод является прологом и его нужно рассматривать отдельно от всех остальных способов. Он был найден, когда весной 2021 года произошел массовый сбой приложений. Если вы заметили, что ошибка появляется сразу в нескольких программах, то действуйте по инструкции:

  1. Запустите Google Play.
  2. Найдите в магазине приложение Android System Webview.
  3. Нажмите кнопку «Удалить».

Удалить Android System Webview. Этот вариант вряд ли поможет, если ошибка появляется только в одном приложении. Фото.

Этот вариант вряд ли поможет, если ошибка появляется только в одном приложении

Избавление от этой программы не вызовет серьезных последствий, но предварительно я все-таки рекомендую вам прочитать наш текст, в котором мы подробно рассказываем, что такое Android System Webview.

Как остановить приложение на Андроиде

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

  1. Открыть настройки телефона.
  2. Перейти в раздел «Приложения», а затем — «Все приложения».
  3. Найти конфликтную программу.
  4. Нажать кнопку «Закрыть» или «Отключить».

Как остановить приложение на Андроиде. Также можно закрыть программу через список запущенных приложений. Фото.

Также можно закрыть программу через список запущенных приложений

Теперь попробуйте снова запустить программу, и, возможно, на этот раз она заработает. Если нет — обратитесь к альтернативным вариантам решения проблемы.

Как очистить приложение

Нередко в приложении происходит сбой из-за повреждения кэша или данных программы. О том, что такое кэш, вы узнаете в отдельном материале, а я лишь покажу, как его очистить:

  1. Откройте настройки устройства.
  2. Найдите интересующую программу через раздел «Приложения».
  3. Нажмите кнопку «Очистить» и подтвердите свое действие нажатием на «Очистить все».

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

Сначала попробуйте очистить только кэш, чтобы не потерять данные приложения

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

Переустановка приложения

Еще более радикальным методом исправления ошибки, вызванной сбоем приложения, является переустановка софта. Думаю, вы и без меня знаете, как это сделать:

  1. Удерживаем палец на иконке приложения.
  2. Нажимаем кнопку «Удалить».
  3. Заново устанавливаем программу через Google Play, другой магазин приложений или APK-файл.

Переустановка приложения. Это лишь один из нескольких способов переустановки программ. Фото.

Это лишь один из нескольких способов переустановки программ

Также можно удалить программу через настройки телефона или в Google Play. Если приложение не удаляется, то, скорее всего, она является стандартным и в случае с ним неполадки устраняются иначе.

Как удалить обновление приложения

Судя по комментариям в нашем телеграм-чате, чаще всего люди жалуются на то, что у них произошел сбой в приложении Google Play или в другой предустановленной программе вроде YouTube или Chrome, которая не поддается удалению. Несмотря на это, проблему все равно можно решить буквально за одну минуту:

  1. Откройте настройки смартфона.
  2. Найдите конфликтующую программу в разделе «Приложения».
  3. Нажмите кнопку «Удалить обновления».

Как удалить обновление приложения. Если не можете найти в списке нужную программу, активируйте опцию «Показать системные приложения». Фото.

Если не можете найти в списке нужную программу, активируйте опцию «Показать системные приложения»

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

При работе со смартфоном на базе операционной системы Android нередко возникают проблемы, как глобальные, так и довольно мелкие, но любое отклонение от нормальной и стабильной работы вызывает недоумение и раздражительность у пользователей. И одной из таких раздражительных проблем является ошибка с оповещением «В приложении произошла ошибка на Андроиде». Почему она появилась? Как ее устранить? Появится ли после перезагрузки устройства? Эти и многие другие вопросы волнуют пользователей, поэтому, если вы читаете этот материал и надеетесь решить проблему, читайте статью до конца!

Оглавление

  • 1 В приложении MSA снова произошла ошибка Xiaomi — решение проблемы
    • 1.1 Обновление приложения Android System WebView
    • 1.2 Если ошибка MSA на Xiaomi появляется, а обновлений нет
    • 1.3 Устраняем ошибку MSA удалением обновлений Google Chrome
  • 2 Основные причины появления ошибки и решения
    • 2.1 Очистка кэша и данных в приложении
    • 2.2 Обновление приложения
    • 2.3 Удаление приложения/переустановка
    • 2.4 Используем альтернативные варианты
    • 2.5 Отключение автоматической синхронизации времени и даты
    • 2.6 Проверка на наличие вирусов
    • 2.7 Отключаем лишние программы и процессы
    • 2.8 Старая версия Android
    • 2.9 Проверяем, удаляли ли системные приложения
    • 2.10 Сброс до заводских настроек

В приложении MSA снова произошла ошибка Xiaomi — решение проблемы

Ошибка MSA Android

Внимание! Решение для пользователей, которые столкнулись с проблемой 23.03.21. У вас появляется ошибка с текстом «В приложении MSA снова произошла ошибка» на Xiaomi, верно? Появляется она на большинстве смартфонов под управлением MIUI, однако на некоторых телефонах может быть исключение. Связано это с тем, что вышло обновление для утилиты Android System WebView, однако при этом оно не совсем корректное. В общем, чтобы решить эту проблему, вам нужно выполнить одно из следующих действий.

Обновление приложения Android System WebView

Google знает об этой проблеме и оперативно «выкатила» обнову, и если у вас еще не обновился Android System WebView, предлагаем вам сделать это в ручном режиме:

  • Зайдите в Google Play и найдите в списке Android System WebView. Это можно сделать как через поиск, так и через пункт «Мои приложения и игры»;
  • Вы перейдете на страницу с этим приложением, где нужно будет нажать вкладку «Обновить»;
  • Как только обновление будет установлено, перезагрузите смартфон и проверьте, появляется ли проблема или нет.

Если ошибка MSA на Xiaomi появляется, а обновлений нет

В таком случае вам нужно в ручном режиме удалить прошлое обновление для Android WebView, которое и вызывает уведомление «В приложении MSA снова произошла ошибка» на Сяоми. Выполняем следующие действия:

  • Заходите в «Настройки» вашего смартфона и переходите в пункт «Приложения»;
  • Далее переходите во вкладку «Все приложения» и находите в списке Android WebView;
  • Нажимаете по этому названию и попадаете в раздел, где нужно нажать вкладку «Удалить обновления»;
  • Перезагружаете свой смартфон и проверяете, появляется ли ошибка МСА снова от Google или нет. Скорее всего, проблема должна исчезнуть.

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

Устраняем ошибку MSA удалением обновлений Google Chrome

Еще одно решение заключается в том, что можно просто удалить обновления для браузера Google Chrome, если их нельзя удалить для Android WebView, как мы рассказывали выше. В общем, порядок действий следующий:

  • Зайдите в «Настройки» своего телефона и перейдите в раздел «Все приложения»;
  • Найдите в списке Google Chrome, нажмите по нему и кликните по вкладке «Удалить обновления»;
  • Это поможет решить проблему, так как на многих телефонах под управлением Android теперь компонент Android WebView встроен в браузер Google Chrome.

Внимание! Если вам помогли наши рекомендации и теперь уведомление с текстом «В приложении MSA снова произошла ошибка» на Андроиде больше не появляется, пожалуйста, отпишитесь об этом в комментариях и укажите, какой именно способ помог, и какая модель телефона у вас.

Основные причины появления ошибки и решения

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

А вообще основные причины зачастую бывают такими:

  1. Вирусы на телефоне;
  2. Телефон слишком загружен (не хватает памяти на жестком диске или ОЗУ);
  3. Старая версия приложения, где возникает ошибка;
  4. Установлены неоригинальные версии программ;
  5. Проблема появляется из-за «Контактов».

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

Очистка кэша и данных в приложении

Как правило, уведомление «В приложении произошла ошибка» может появляться из-за сбоя в работе программы или поврежденных файлов, неудачного обновления. Для начала рекомендуется очистить кэш этого приложения. Делается это следующим образом:

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

Обновление приложения

Не помогла очистка? В этом случае нужно проверить, нет ли обновлений для данного продукта. Вполне возможно, что ошибка появляется из-за «кривой» обновы или найденного бага, проявляющего себя вот таким образом. Обновления можно посмотреть в Google Play, зайдя в данный сервис и кликнув по вкладке «Мои приложения».Мои приложения и игры Google PlayОбновления в Google Play

Если же апдейтов нет, но ошибка все равно появляется, переходите к следующему пункту.

Удаление приложения/переустановка

Попробуйте удалить программу, в которой возникает проблема и загрузите ее снова в свой смартфон. Если вы ранее скачивали файл со сторонних файлов, рекомендуем вам в дальнейшем качать только с Google Play или проверенных сервисов, например, trashbox, где выкладываются все версии каждого приложения без вирусов и прочих «неожиданностей».В приложении произошла ошибка

Если же установленная программа на вашем смартфоне ранее была загружена из официального сервиса Play Маркет, то попробуйте скачать теперь со стороннего сайта. Можно даже попытаться скачать другой версии, чтобы исключить вероятность появления ошибки из-за некорректного обновления. Только вам необходимо будет сначала разрешить установку из неизвестных источников. Об этом у нас на сайте есть отдельная статья, где все подробно описано.

Используем альтернативные варианты

Если у вас при запуске какой-то программы появляется уведомление с текстом «В приложении произошла ошибка» на Android, и даже если вы переустанавливаете этот продукт с других источников, ничего не меняется, можно попробовать поискать альтернативные варианты. Например, это проигрыватель. В Play Маркете можно найти большое количество других приложений из этой же категории. Если вы не знаете, какую альтернативу использовать, напишите в комментариях, где именно у вас возникает данная проблема, и мы поможем вам подобрать другие приложения, которые будут корректно работать.Google Play

Отключение автоматической синхронизации времени и даты

Как ни странно, но проблема иногда может появляться из-за автоматической синхронизации времени и даты на вашем смартфоне. Это случается крайне редко, но исключать данный фактор нельзя. Решается все в несколько кликов:

Теперь перезагрузите свой смартфон и зайдите в то приложение, где появлялась ошибка. Перезагрузка обязательна!

Проверка на наличие вирусов

К сожалению, зачастую проблема заключается в том, что у вас в системе находятся вирусы, часть из которых могут вызывать такие ошибки при запуске определенных приложений или сразу всех. Мы рекомендуем вам перевести устройство в безопасный режим и попробовать запустить программу, которая ранее вызывала проблемы. Если в безопасном режиме все работает без ошибок, значит, проблема точно в наличие вредоносных оболочек в вашем телефоне.Вирусы Андроид

Также рекомендуем вам установить антивирусное программное обеспечение, например, от Kaspersky или Dr.Web, которые отлично справляются с поиском вредоносных программ и регулярно обновляются. По поиску вирусов на Андроиде и полному удалению их из системы рекомендуем вам почитать нашу отдельную статью, где описаны все рекомендации и советы от профессиональных пользователей.

Отключаем лишние программы и процессы

Еще одна возможная проблема – это конфликт запущенных приложений на вашем Андроиде. Например, если у вас запущен проигрыватель, и вы пытаетесь запустить редактор фотографий, возникает ошибка, попробуйте закрыть все приложения на телефоне и запустить только тот вариант, где возникала проблема. Если ошибки не появится, скорее всего, проблема в конфликте двух программ.Запущенные приложения

В этом случае нужно будет вспомнить, что вы запускали ранее или пробовать открывать все приложения подряд с тем продуктом, где возникает ошибка. Как только она появится повторно – смотрите, что запустили до этого, и удаляйте или обновите через Play Маркет.

Старая версия Android

Если у вас версия Android ниже 5.0, и вы пытаетесь установить приложение, которое адаптировано под новые версии Андроида, вполне вероятно появление такой ошибки, так как программы рассчитаны на более новую оболочку, в которой используются совершенно другие алгоритмы и технологии. В этом случае у вас есть 2 варианта:

  • Смириться с этим и попытаться найти альтернативу (маловероятно);
  • Приобрести новый телефон, где будет установлена одна из последних версий Android.

Проверяем, удаляли ли системные приложения

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

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

Сброс до заводских настроек

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

У нас на сайте есть отдельная статья о том, как сбросить телефон Андроид до заводских настроек, где подробно описан весь процесс и даны рекомендации по дальнейшей настройке телефона. Помните, что это самый крайний случай, и переходить к этому пункту нужно, если все описанные выше рекомендации вам не помогли. В 99% случаев сброс помогает избавиться от всех проблем, особенно, если у вас были вирусы на телефоне.

Вариантов решения проблемы много, и все зависит от конкретного случая. Данная инструкция является универсальной и предназначена практически для всех версий Android, однако, если у вас есть другое решение, которое вам помогло – будем вам признательны, если вы об этом напишите в комментариях, и мы обязательно дополним свой материал.

Поделиться ссылкой:

Приготовьте отладчик! Пишем приложение с ошибками, затем учимся их находить и дебажить

https://gbcdn.mrgcdn.ru/uploads/post/2735/og_image/ce05da5c8c8f97a3bf7713b7cbaf3802.png

Иногда в приложении встречаются ошибки, которые нельзя увидеть даже после запуска. Например, код компилируется, проект запускается, но результат далёк от желаемого: приложение падает или вдруг появляется какая-то ошибка (баг). В таких случаях приходится «запасаться логами», «брать в руки отладчик» и искать ошибки.

Часто процесс поиска и исправления бага состоит из трёх шагов:

  1. Воспроизведение ошибки — вы понимаете, какие действия нужно сделать в приложении, чтобы повторить ошибку.
  2. Поиск места ошибки — определяете класс и метод, в котором ошибка происходит.
  3. Исправление ошибки.

Если приложение не падает и чтение логов ничего не даёт, то найти точное место ошибки в коде помогает дебаггер (отладчик) — инструмент среды разработки.

    Чтобы посмотреть на логи и воспользоваться дебаггером, давайте напишем простое тестовое (и заведомо неправильное) приложение, которое даст нам все возможности для поиска ошибок.

    Это будет приложение, которое сравнивает два числа. Если числа равны, то будет выводиться результат «Равно», и наоборот. Начнём с простых шагов:

  1. Открываем Android Studio. 
  2. Создаём проект с шаблоном Empty Activity. 
  3. Выбираем язык Java, так как его, как правило, знают больше людей, чем Kotlin. 

Нам автоматически откроются две вкладки: activity_main.xml и MainActivity.java. Сначала нарисуем макет: просто замените всё, что есть в activity_main.xml, на код ниже:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">
 
  <EditText
     android:id="@+id/first_number_et"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:ems="10"
     android:gravity="center"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toTopOf="parent" />
 
  <EditText
     android:id="@+id/second_number_et"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:ems="10"
     android:gravity="center"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/first_number_et" />
 
  <Button
     android:id="@+id/button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Равно?"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/second_number_et" />
 
  <TextView
     android:id="@+id/answer_tv"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text=""
     android:textSize="32sp"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/button" />
</androidx.constraintlayout.widget.ConstraintLayout>

Можете запустить проект и посмотреть, что получилось:

Теперь оживим наше приложение. Скопируйте в MainActivity этот код:

public class MainActivity extends AppCompatActivity {
 
  @Override
  protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
 
     final Button button = (Button) findViewById(R.id.button);
     final EditText first = (EditText) findViewById(R.id.first_number_et);
     final EditText second = (EditText) findViewById(R.id.second_number_et);
     final TextView answer = (TextView) findViewById(R.id.answer_tv);
 
     button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           Integer firstInt = Integer.parseInt(first.getText().toString());
           Integer secondInt = Integer.parseInt(second.getText().toString());
           if (firstInt == secondInt) {
              answer.setText("Равно");
           } else {
              answer.setText("Равно");
           }
        }
     });
  }
}

В этом коде всё просто: 

  1. Находим поля ввода, поле с текстом и кнопку.
  2. Вешаем на кнопку слушатель нажатий.
  3. По нажатию на кнопку получаем числа из полей ввода и сравниваем их.
  4. В зависимости от результата выводим «Равно» или «Не равно».

Запустим приложение и введём буквы вместо чисел:

Нажмём на кнопку, и приложение упадёт! Время читать логи. Открываем внизу слева вкладку «6: Logcat» и видим:

Читать логи просто: нужно найти красный текст и прочитать сообщение системы. В нашем случае это java.lang.NumberFormatException: For input string: «f». Указан тип ошибки NumberFormatException, который говорит, что возникла какая-то проблема с форматированием числа. И дополнение: For input string: «f». Введено “f”. Уже можно догадаться, что программа ждёт число, а мы передаём ей символ. Далее в красном тексте видно и ссылку на проблемную строку: at com.example.appdebugging.MainActivity$1.onClick(MainActivity.java:26). Проблема в методе onClick класса MainActivity, строка 24. Можно просто кликнуть по ссылке и перейти на указанную строку:

int firstInt = Integer.parseInt(first.getText().toString());

Конечно, метод parseInt может принимать только числовые значения, но никак не буквенные! Даже в его описании это сказано — и мы можем увидеть, какой тип ошибки этот метод выбрасывает (NumberFormatException).

Здесь мы привели один из примеров. Типов ошибок может быть огромное количество, все мы рассматривать не будем. Но все ошибки в Logcat’е указываются по похожему принципу: 

  • красный текст;
  • тип ошибки — в нашем случае это NumberFormatException;
  • пояснение — у нас это For input string: «f»;
  • ссылка на строку, на которой произошла ошибка — здесь видим MainActivity.java:26. 

Исправим эту ошибку и обезопасим себя от некорректного ввода. Добавим в наши поля ввода android:inputType=»number», а остальной код оставим без изменений:

...
<EditText
  android:id="@+id/first_number_et"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:ems="10"
  android:gravity="center"
  android:inputType="number"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toTopOf="parent" />
 
<EditText
  android:id="@+id/second_number_et"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:ems="10"
  android:gravity="center"
  android:inputType="number"
  app:layout_constraintLeft_toLeftOf="parent"
  app:layout_constraintRight_toRightOf="parent"
  app:layout_constraintTop_toBottomOf="@+id/first_number_et" />
...

    Теперь можем вводить только числа. Проверим, как работает равенство: введём одинаковые числа в оба поля. Всё в порядке:

На равенство проверили. Введём разные числа: 

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

  1. Воспроизведём ошибку: да, ошибка воспроизводится стабильно с любыми двумя разными числами.
  2. Подумаем, где может быть ошибка: наверняка там, где сравниваются числа. Туда и будем смотреть.
  3. Исправим ошибку: сначала найдём её с помощью дебаггера, а когда поймём, в чём проблема, — будем исправлять.

И здесь на помощь приходит отладчик. Для начала поставим точки останова сразу в трёх местах:

    Чтобы поставить или снять точку останова, достаточно кликнуть левой кнопкой мыши справа от номера строки или поставить курсор на нужную строку, а затем нажать CTRL+F8. Почему мы хотим остановить программу именно там? Чтобы посмотреть, правильные ли числа сравниваются, а затем определить, в какую ветку в нашем ветвлении заходит программа дальше. Запускаем программу с помощью сочетания клавиш SHIFT+F9 или нажимаем на кнопку с жучком:

  

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

Вы в режиме дебага. Обратите внимание на две вещи:

  1. Точки останова теперь помечены галочками. Это значит, что вы находитесь на экране, где стоят эти точки, и что дебаггер готов к работе.
  2. Открылось окно дебага внизу: вкладка «5: Debug». В нём будет отображаться необходимая вам информация.

    Введём неравные числа и нажмём кнопку «РАВНО?». Программа остановилась на первой точке:

Давайте разбираться:

  1. Сразу подсвечивается синим строка, где программа остановлена: в окне кода на 28-й строке и в левом окне отладчика (там даже можно увидеть, какой метод вызван, — onClick).
  2. В правом, основном окне отладчика, всё гораздо интереснее. Здесь можно увидеть инстансы наших вью (answer, first, second), в конце которых серым текстом даже отображаются их id. Но интереснее всего посмотреть на firstInt и secondInt. Там записаны значения, которые мы сейчас будем сравнивать.

Как видим, значения именно такие, какие мы и ввели. Значит, проблема не в получении чисел из полей. Давайте двигаться дальше — нам нужно посмотреть, в правильную ли ветку мы заходим. Для этого можно нажать F8 (перейти на следующую строку выполнения кода). А если следующая точка останова далеко или в другом классе, можно нажать F9 — программа просто возобновит работу и остановится на следующей точке. В интерфейсе эти кнопки находятся здесь:

Остановить дебаггер, если он больше не нужен, можно через CTRL+F2 или кнопку «Стоп»:

    В нашем случае неважно, какую кнопку нажимать (F9 или F8). Мы сразу переходим к следующей точке останова программы:

Ветка правильная, то есть логика программы верна, числа firstInt и secondInt не изменились. Зато мы сразу видим, что подпись некорректная! Вот в чём была ошибка. Исправим подпись и проверим программу ещё раз.

    Мы уже починили два бага: падение приложения с помощью логов и некорректную логику (с помощью отладчика). Хеппи пас (happy path) пройден. То есть основная функциональность при корректных данных работает. Но нам надо проверить не только хеппи пас — пользователь может ввести что угодно. И программа может нормально работать в большинстве случаев, но вести себя странно в специфических состояниях. Давайте введём числа побольше и посмотрим, что будет:

Не сработало — программа хочет сказать, что 1000 не равна 1000, но это абсурд. Запускаем приложение в режиме отладки. Точка останова уже есть. Смотрим в отладчик:

Числа одинаковые, что могло пойти не так? Обращаем внимание на тип переменной — Integer. Так вот в чём проблема! Это не примитивный тип данных, а ссылочный. Ссылочные типы нельзя сравнивать через ==, потому что будут сравниваться ссылки объектов, а не они сами. Но для Integer в Java есть нюанс: Integer может кешироваться до 127, и если мы вводим по единице в оба поля числа до 127, то фактически сравниваем просто int. А если вводим больше, то получаем два разных объекта. Адреса у объектов не совпадают, а именно так Java сравнивает их.

Есть два решения проблемы:

  1. Изменить тип Integer на примитив int.
  2. Сравнивать как объекты.

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

if (firstInt.equals(secondInt)) {
  answer.setText("Равно");
} else {
  answer.setText("Не равно");
}

Проверяем:

Всё работает. Наконец-то! Хотя… Давайте посмотрим, что будет, если пользователь ничего не введёт, но нажмёт на кнопку? Приложение опять упало… Смотрим в логи:

Опять NumberFormatException, при этом строка пустая. Давайте поставим точку останова на 26-й строке и заглянем с помощью отладчика глубже.

Нажмём F8 — и перейдём в глубины операционной системы:

    Интересно! Давайте обернём код в try/catch и посмотрим ошибке в лицо. Если что, поправим приложение. Выделяем код внутри метода onClick() и нажимаем Ctrl+Alt+T:

Выбираем try / catch, среда разработки сама допишет код. Поставим точку останова. Получим:

Запускаем приложение и ловим ошибку:

Действительно, как и в логах, — NumberFormatException. Метод parseInt выбрасывает исключение, если в него передать пустую строку. Как обрабатывать такую проблему — решать исключительно вам. Два самых простых способа:

  1. Проверять получаемые строки first.getText().toString() и second.getText().toString() на пустые значения. И если хоть одно значение пустое — говорить об этом пользователю и не вызывать метод parseInt.
  2. Или использовать уже готовую конструкцию try / catch:

Теперь-то точно всё в порядке! Хотя профессиональным тестировщикам это приложение никто не отдавал: поищете ещё ошибки? :)

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

Основные причины ошибки

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

Причинами ошибки при работе с приложениями могут быть:

  • ошибка данных в приложении контактов;
  • системные приложения отключены или удалены по ошибке или неправильным образом;
  • установка неоригинальных приложений со сторонних сайтов;
  • ошибка при обновлении программного обеспечения;
  • вирусная атака на устройство;
  • излишняя загруженность памяти мобильного телефона;
  • устаревшая версия самого приложения.

Если использование приложения все еще актуально для пользователя, наладить качественную работу следует сразу же.

Как исправить ошибку

Существует несколько методов исправления системной ошибки. К самым популярным из них относятся:

  • очистка кэша и системного мусора на устройстве;
  • отключение синхронизации даты и времени;
  • проверка и очистка системы телефона от вредоносных программ;
  • сброс устройства до заводских настроек;
  • переустановка приложения.

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

Чистим кэш и мусор

При использовании любого приложения оно сохраняет файлы из внешних источников (чаще всего из интернета) для последующего использования. Данные файлы хранятся в кэше приложения и занимают определенное пространство в памяти устройства. Из-за слишком большого объема кэша может затрудниться работа самого приложения.

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

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

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

  1. Необходимо нажать на заголовок «Хранилище», чтобы открыть страницу настроек.
  2. Далее перейти в раздел «Другие приложения», чтобы увидеть список установленных на устройстве приложений.
  3. Найти в списке приложение, из которого пользователь хочет очистить кэш, и выбрать его из списка.
  4. В пункте необходимо выбрать кнопку «Очистить кэш» и дождаться освобождения лишних данных.

Что делать, если в приложении Телефон произошла ошибка

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

Обычно очистка исправляет внешние и внутренние проблемы в работе, особенно когда приложение скачивает контент с веб-сайта, который постоянно меняется и добавляет большее количество данных.

Личные данные пользователя, переписки и фотографии при очистке кэша не удаляются.

Если после очистки кэша приложение не заработало, может помочь полная очистка хранилища.

Это удалит все данные приложения, включая имена пользователей и пароли, ход игры, сохраненные переписки и фотографии и прочее:

  1. Необходимо нажать на заголовок «Хранилище», чтобы открыть страницу настроек.
  2. Далее перейти в раздел «Другие приложения», чтобы увидеть список установленных на устройстве приложений.
  3. Найти в списке приложение, из которого пользователь хочет очистить кэш, и выбрать его из списка.
  4. В пункте необходимо выбрать кнопку «Очистить хранилище» и дождаться удаления всех данных утилиты.

Отключаем синхронизацию даты и времени

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

  1. Для этого переходим в раздел настроек и выбираем раздел «Общие настройки».
  2. В списке пунктов находим «Дата и время», нажимаем.
  3. В открывшимся окне следует нажать на рычажок напротив пункта «Синхронизация времени» или «Автоопределение даты и времени». Следующим шагом вручную настроить верное число и время.
  4. Перезагрузить устройство и попытаться снова войти в приложение, которое выдавало ошибку.

Что делать, если в приложении Телефон произошла ошибка

Проверяем систему на наличие вирусов

Скачивание вредоносных программ также может негативно отразиться на работе устройства. Для того, чтобы очистить телефон от вирусов, необходимо следовать инструкции:

  1. В первую очередь устройство следует перевести в безопасный режим. Это действие предотвратит запуск любых сторонних приложений на мобильном и приведет к остановке вредоносного приложения. Для большинства устройств андроид пользователь может перевести свое устройство в безопасный режим, нажав и удерживая кнопку питания в течение нескольких секунд, пока телефон не предложит выключить устройство.
  2. Затем следует нажать и удерживать кнопку «Выключение питания» в течение нескольких секунд или пока мобильное устройство не попросит подтвердить, что пользователь хочет перейти в безопасный режим. Нужно нажать кнопку «ок», и телефон перезагрузится в безопасном режиме.
  3. Когда устройство находится в безопасном режиме, все сторонние приложения будут отключены, и в левом нижнем углу экрана должна появиться надпись «Безопасный режим»
  4. Когда телефон находится в безопасном режиме, нужно перейти в меню настроек и выбрать раздел «Приложения». Следует перейти к загруженным приложениям, чтобы найти утилиту, которое может вызывать проблемы на устройстве. Если пользователь не знает, какая именно утилита может вызывать проблемы, следует перейти в общий список и найти ту, которая выглядит странно, или ту, которую сам пользователь не устанавливал.
  5. Найдя вредоносное приложение, нужно нажать на него, чтобы открыть страницу информации о приложении, и нажать «удалить». В некоторых случаях можно увидеть, что кнопка «Удалить» неактивна, и обычно это происходит потому, что вирус назначил себе статус администратора.
  6. После удаления вредоносного приложения выйдите из меню приложений и перейдите в «Настройки»/«Безопасность»/«Администраторы устройства». Появится список приложений, которые имеют статус администратора на телефоне. Чтобы удалить приложение, нужно просто установить флажок рядом с ним и нажать «деактивировать» на следующем экране. Теперь можно вернуться к экрану приложения и безопасно удалить его.

Также можно скачать из  Google Play утилиту, например Dr.Web, Avast, AVG и прочие проверенные сервисы. Для примера рассмотрим работу с программой Dr.Web:

  1. Запускам приложение.
  2. Нажимаем по кнопке «Сканер».
  3. Выбираем тип сканирования (рекомендуем использовать полную проверку).
  4. Ожидаем окончания процедуры проверки, продолжительность которой зависит от количества установленных программ.

Что делать, если в приложении Телефон произошла ошибка

Сбрасываем устройство до заводских настроек

Если ни один из описанных способов не помогает, на устройстве могла возникнуть какая-то глубокая внутренняя ошибка, в результате чего понадобится полный сброс настроек на телефоне. Чтобы сбросить устройство, нужно:

  • Перейти в раздел «Настройки»/«Общие настройки»/«Сброс».
  • В открывшемся окне выбрать пункт «Сброс настроек телефона» и нажать «Сбросить».
  • Подтвердить свои действия и дождаться перезагрузки устройства.

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

https://www.youtube.com/watch?v=9V26WelV-Wk

Обновляем приложение

Проблема с загрузкой утилиты также может быть вызвана:

Проблема Описание проблемы Решение
Устаревшая версия приложения Приложение может не загружаться из-за устаревания версии на устройстве. Из-за большого количества обновленных данных производители нередко останавливают старые версии мобильных утилит. Их использование наряду с обновленными версиями на других мобильных становится невозможным. Необходимо следить за наличием обновлений на официальном сайте разработчика или в магазине приложений на устройстве (универсальный магазин для все смартфонов на платформе Android – «Play Market») и регулярно обновлять устаревающую версию, чтобы избежать блока от производителя.
Нелицензионное приложение При скачивании утилиты со стороннего источника пользователь может столкнуться с проблемой ошибки при загрузке. Приложения без лицензии зачастую имеют вирусы и сбои в работе, которые исправляются только удалением. Скачивать приложения следует только с сайта разработчика или официальных магазинов приложений.

Дополнительные методы решения проблемы

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

Советы для предотвращения появления проблемы

Чтобы избежать возникновения ошибок в приложении, следует:

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

Если следовать данным советам, риск сбоя в работе приложения на андроид будет минимальным.

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

Некоторые приложения, которые вы скачиваете, могут мешать нормальной работе телефона. Выполните описанные ниже действия, если телефон:

  • перезапускается сам по себе;
  • зависает; 
  • работает со сбоями;
  • работает медленно.

Перезапустите устройство в безопасном режиме

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

Выполнение перезапуска в безопасном режиме различается в зависимости от модели телефона. Подходящие инструкции можно найти на сайте службы поддержки вашего производителя.

Шаг 2. Проверьте, устранена ли проблема

  • Проверьте, решена ли проблема.
  • Если проблема решена, вероятнее всего, ее вызывает приложение. Перейдите к шагу 3.
  • Если проблема не исчезла, значит ее вызывает не приложение. Следуйте инструкциям для решения конкретной проблемы.

Шаг 3. Выйдите из безопасного режима

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

Совет. В безопасном режиме с главного экрана будут удалены некоторые виджеты. Их можно добавить снова в обычном режиме. Подробнее о том, как добавлять виджеты…

Шаг 4. Проверьте приложения

  • Начните удалять недавно скачанные приложения по одному.
  • После каждого удаления перезапускайте устройство и проверяйте, не исчезла ли проблема.
  • Когда проблема будет устранена, вы сможете переустановить нужные приложения.

Эта информация оказалась полезной?

Как можно улучшить эту статью?

Понравилась статья? Поделить с друзьями:
  • Шипит микрофон на телефоне как исправить
  • Как найти цену товара зная количество
  • Как найти работу в мумбаи
  • Ошибка вин 32 как исправить виндовс 10
  • Как найти значение выражения по формулам приведения