Что делать, когда приложение продолжает сбоить и сообщает об исключении IllegalStateException с неизвестным источником?

#android #kotlin #google-play #illegalstateexception

#Android #kotlin #google-play #исключение illegalstateexception

Вопрос:

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

  • package.d.a (Unknown Source:73) . Однако d.a название пакета мне совершенно неизвестно, потому что у меня его нет во всем моем проекте.
  • package.MainActivity.onResume (Unknown Source:8) . При этом 8th у меня есть импорт, который никогда не вызовет исключения.

Я предполагаю, что не только я, но и некоторые другие пользователи, которые уже обновили приложение, также сталкиваются с проблемой сохранения. Тем не менее, я только что сгенерировал подписанное apk мое приложение и установил его на свое реальное устройство (не тестовое устройство), но для этого шага мне нужно было удалить приложение, загруженное из Google Play, перед установкой вручную. Этот подход сработал, и приложение больше не вылетает и работает должным образом без проблем.

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

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

Ответ №1:

Если вы используете proguard, вам необходимо добавить файл сопоставления на свою консоль

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

Важно: для деобфускации поддерживаются только файлы сопоставления ProGuard.

Комментарии:

1. Привет, Лео, спасибо за твой ответ, это помогло мне приблизиться к проблеме.

Ответ №2:

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

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

Вы также можете использовать Crashlytics от Firebase для обнаружения сбоев и получения более подробной информации о сбоях.

Надеюсь, это поможет.

Комментарии:

1. Привет, братан, я уже выполнил тест Firebase, и тест успешно пройден. Тем не менее, я попытался следовать ответу Лео Пелозо выше, и я опубликую результаты как можно скорее.

2. Ваш тест Robo пройден? Отлично. Рассмотрите возможность использования Crashlytics в будущих выпусках после того, как вы определили и устранили проблему. Удачи.

3. Итак, подсказка Leo’s помогает выяснить проблему. Я загрузил файл сопоставления моего проекта, и это помогло решить проблему. У меня три проблемы (две в моем MainActivity и одна в классе базы данных),

4. но ни одно из них не указывает на реальную строку кода. Например, консоль Google Play сообщает об ошибке IllegalStateException в моем классе базы данных в строке 85, однако это неверно, поскольку мой класс заканчивается на 83-й строке.

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

Ответ №3:

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