Несколько сценариев:

  • В ОС с защищенной памятью (например, Linux или современная Windows) ОС обнаруживает, что приложение пытается получить доступ к памяти, к которой ему не разрешен доступ - или не существует - и ОС убивает его, чтобы предотвратить повреждение других приложения или сама ОС. В Linux это будет ошибка сегментации, а в Windows - нарушение прав доступа. (Это почти всегда происходит из-за ошибки в коде и редко бывает вредоносной.)
  • Попытка доступа к «невыровненной» памяти (бывает редко). В Linux это вызывает ошибку шины.
  • Подпрограмма библиотеки вызывает подпрограмму «паники», которая останавливает приложение, потому что ему были переданы неверные аргументы.
  • Аппаратные средства (или программные эмуляторы) также могут вызывать «панику» из-за таких вещей, как деление на ноль или другие вещи. В Linux это будет математическое или арифметическое исключение.
  • Само приложение может остановиться с ошибкой из-за множества вещей: больше нет ОЗУ, не удалось записать в файл, диск заполнен и т. Д.
  • Некоторые приложения могут обнаруживать, что они внутренне повреждены или находятся в непредвиденном состоянии, и аварийно завершают работу, вызывая процедуру паники.
  • Если дела пойдут совсем плохо, сама ОС может быть повреждена, что приведет к «зависанию» или сбою машины.
  • У вас также есть сбои оборудования или сбои, которые вызывают сбои или «зависания».

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

  1. Тема не выбрана или не соответствует, например, если я использую конструктор диалогов, мне нужна тема AppCompact
  2. Предоставляя getApplicationContext (), где необходимо имя действия, опять же dialogBuilder, ему требуется ActivityName.this в качестве аргумента вместо getApplicationContext ()
  3. Наиболее распространенная ошибка, нулевой указатель, продолжайте проверять ide на предмет предупреждений или монитор студии Android для нулевого указателя, добавьте попытку уловить и даже проверку нулевого указателя, чтобы предотвратить это
  4. Я считаю, что парсинг json-массива и объектов - одна из самых сложных задач. Это искусство, соответствующее структуре данных, присутствующим объектам, иерархии пары ключ-значение, неправильная обработка может привести к нулевому указателю.
  5. Создание представления списка, набор данных загружен неправильно
  6. Перед попыткой подключения к веб-сайту приложение не проверяется на наличие подключения к Интернету.
  7. Надлежащие разрешения, не предоставленные или не запрошенные пользователем, приложение перед их использованием
  8. Ошибка приведения класса, ошибка обмена типами данных
  9. StackOverflowError (он также может возникать в правильно написанных (но глубоко рекурсивных) программах (java и android). Когда программа становится бесконечно рекурсивной, мы создаем макет (глубокий и сложный), который превышает этот стек платформы или виртуальная машина. рекурсивно или слишком много макета приведет к ошибке переполнения стека в Android, слишком много внутренних макетов.)
  10. Действие не объявлено в манифесте
  11. Когда делается запрос на память, он не может быть удовлетворен с использованием доступных ресурсов платформы. в основном с использованием битовой карты, галереи и т. д.
  12. ANR (приложение не отвечает) в основном возникает, когда вы выполняете сетевую функцию или какой-то длинный процесс. Это блокирует поток пользовательского интерфейса (пользовательского интерфейса), поэтому пользователь не может выполнять какую-либо работу.
  13. Попробуйте использовать блок Try - Catch в программе All Place. Не оставляйте блок catch пустым, это может скрыть ошибки.

Надеюсь, это поможет любому из нас ...

Содержание может содержать уже опубликованные вещи…