Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102

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

09.06.2015, 23:19. Показов 1578. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Например вот:

Java
1
2
3
4
5
6
7
8
9
10
11
12
java.lang.NullPointerException
at android.view.textservice.SpellCheckerSession.handleOnGetSentenceSuggestionsMultiple(SpellCheckerSession.java:222)
at android.view.textservice.SpellCheckerSession.access$100(SpellCheckerSession.java:86)
at android.view.textservice.SpellCheckerSession$1.handleMessage(SpellCheckerSession.java:116)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:149)
at android.app.ActivityThread.main(ActivityThread.java:5061)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603)
at dalvik.system.NativeStart.main(Native Method)
При этом стек даже не содержит имени пакета приложения.
На определенном устройстве возникает такая ошибка и приложение закрывается.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2015, 23:19
Ответы с готовыми решениями:

Трассировка стека в Си
Ищу какое-нибудь решение для решения задачи Трассировки стека в Си. Например, когда программа вывалилась в abort() и/или для проверки в...

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

Трассировка стека рекурснивного метода
Есть трассировка рекурсивного метода, вот например факториала: Enter n: 3 factorial(3): ...

17
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
10.06.2015, 00:35
Ищи при помощи логов, например. В разных местах логируешь и смотришь где ещё работает, а где уже нет. Ты же сам должен представлять что у тебя происходит в коде и где могут быть косяки. Наверное это не лучший способ, но я так привык делать.
0
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.06.2015, 04:23  [ТС]
Цитата Сообщение от Mikalai Посмотреть сообщение
Ищи при помощи логов, например. В разных местах логируешь и смотришь где ещё работает, а где уже нет. Ты же сам должен представлять что у тебя происходит в коде и где могут быть косяки. Наверное это не лучший способ, но я так привык делать.
Было бы замечательно, если бы я писал код и вдруг такая ошибка начала бы возникать. Стабильно. Но как понять где копать, если стек приходит от какого-нибудь португальца, раз в месяц, скачавшего приложение с гугл плея.

Добавлено через 4 минуты
Когда пользователей становится уже несколько тысяч, то раз в день-два стабильно такие разнообразные ошибки приходят, у которых никак не понять откуда ноги растут.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.06.2015, 04:51
Цитата Сообщение от GukZiLLA Посмотреть сообщение
у которых никак не понять откуда ноги растут.
В их часовом поясе смещение фазы луны превышает критическое.
Цитата Сообщение от GukZiLLA Посмотреть сообщение
Когда пользователей становится уже несколько тысяч, то раз в день-два стабильно такие разнообразные ошибки приходят
Если она у пользователя возникла, то и будет возникать постоянно. Если он прогой пользуется постоянно то и ошибки будут приходить постоянно от того же пользователя.

Добавлено через 2 минуты
Цитата Сообщение от GukZiLLA Посмотреть сообщение
java.lang.NullPointerException
Как вариант пустили на старом девайсе с версией андроида ниже требуемой и не нашелся нужный метод.
0
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.06.2015, 05:06  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Если она у пользователя возникла, то и будет возникать постоянно. Если он прогой пользуется постоянно то и ошибки будут приходить постоянно от того же пользователя.
Ух-ты, я прям прозрел!

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Как вариант пустили на старом девайсе с версией андроида ниже требуемой и не нашелся нужный метод.
Ак вот не вариант, так как выше требуемой.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.06.2015, 05:15
Цитата Сообщение от GukZiLLA Посмотреть сообщение
Ак вот не вариант, так как выше требуемой.
Ну тогда проверяйте инициализацию всех переменных. И все динамические переменные перед обращением. И все результаты операций выделения памяти. Их кстати очень неплохо в try catch блок. а то они взяли моду не NULL возвращать если что не так а экскепшинами бросаться.

Добавлено через 2 минуты
Хотя конечно существует вариант что это проблема не вашего приложения а реализации андроида на какой то конкретной китайской модели трубы.

Добавлено через 1 минуту
Цитата Сообщение от GukZiLLA Посмотреть сообщение
При этом стек даже не содержит имени пакета приложения
т.е. как понимаю ваше приложение даже не получает управление, валится загрузчик ОС при запуске? Как вариант требования к ОЗУ или чему то еще выше чем есть в системе, ну и при попытке их распределения загрузчик вылетает, либо конфликт с правами доступа и т.д. Опять же не факт что в данной трубе корректно реализована поддержка всего функционала всех предыдущих версий.
0
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.06.2015, 05:40  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Хотя конечно существует вариант что это проблема не вашего приложения а реализации андроида на какой то конкретной китайской модели трубы.
В основном от китайцев и идут ошибки. От реальных китайцев с локалей zh_CN и изредка с других стран.

Вот например еще одна от pt_BR:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
java.lang.NullPointerException
at com.google.maps.api.android.lib6.d.ao.onClick(Unknown Source)
at android.view.View.performClick(View.java:4432)
at android.view.View$PerformClick.run(View.java:18339)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5283)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Я канеш понимаю, что что-то с картами связано, но опять-таки пакета приложения нет в стеке.

Добавлено через 6 минут
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
т.е. как понимаю ваше приложение даже не получает управление, валится загрузчик ОС при запуске? Как вариант требования к ОЗУ или чему то еще выше чем есть в системе, ну и при попытке их распределения загрузчик вылетает, либо конфликт с правами доступа и т.д. Опять же не факт что в данной трубе корректно реализована поддержка всего функционала всех предыдущих версий.
Валится не при запуске приложения, а во время работы.
Если бы проблемы были с ОЗУ, то скорей всего получал бы outOfMemory?

Тут еще один момент, что мне надо как-то начальству объяснить, что это косяки прошивок))

---

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

---

Иногда удается понять что провоцирует ошибку в прошивке(?) и не провоцировать, но чаще всего не ясно что делать)

Добавлено через 10 минут
Fulcrum_013, наверняка станет интересно узнать как я такое перехватываю)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class UnCaughtException implements UncaughtExceptionHandler {
    
    private Context ctx;
 
    public UnCaughtException(Context ctx) {
        this.ctx = ctx;
    }
 
    
    @Override
    public void uncaughtException(Thread t, Throwable e) {
        try {
            StringBuilder report = new StringBuilder();
            Date curDate = new Date();
            report.append("Error Report collected on : ").append(curDate.toString()).append('\n').append('\n');
            report.append("Informations :").append('\n');
            report.append('\n').append('\n');
            report.append("Stack:\n");
            final Writer result = new StringWriter();
            final PrintWriter printWriter = new PrintWriter(result);
            e.printStackTrace(printWriter);
            report.append(result.toString());
            printWriter.close();
            report.append('\n');
            report.append("**** End of current Report ***");
            Log.e(UnCaughtException.class.getName(), "Error while sendErrorMail" + report);
            sendError(ctx, report);
        } catch ( Throwable ignore ) {
            Log.e(UnCaughtException.class.getName(), "Error while sending error e-mail", ignore);
        }
    }
 
    ...
}
в методе sendError(ctx, report) происходит отправка ошибки на наш сервер.
В итоге всё перехваченное валится пачками и можно оперативно отслеживать работоспособность приложения.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.06.2015, 05:43
Цитата Сообщение от GukZiLLA Посмотреть сообщение
Валится не при запуске приложения, а во время работы.
Тогда существует вариант что то что его валит по дороге еще и стек портит
0
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.06.2015, 05:44  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Тогда существует вариант что то что его валит по дороге еще и стек портит
Вот как понять что его валит и как это исправить?
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.06.2015, 05:45
Цитата Сообщение от GukZiLLA Посмотреть сообщение
Тут еще один момент, что мне надо как-то начальству объяснить, что это косяки прошивок))
Почему то думал что у тех кто на гугл-плэй размещает приложения начальство отсутствует как класс
0
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.06.2015, 05:49  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Почему то думал что у тех кто на гугл-плэй размещает приложения начальство отсутствует как класс
Есть свои игрульки и приложения, но они не выстрелили.
Слишком плохонькие видать)
Так что пока приходится мириться с начальством.
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.06.2015, 05:49
Цитата Сообщение от GukZiLLA Посмотреть сообщение
Вот как понять что его валит и как это исправить?
Если есть вопросы с NULL и порчей стэка то значит какой то указатель смотрит не туда. Учитывая что это JAVA то не туда его явно не вы указали а кто то другой вне вашего контроля (например кривая Java-машина). Или внешнее вмешательство. Был как то баг - при запуске одного приложения внешним лаунчером у него крешились java-машина которую он поднималю причем баг проявлялся именно на USA версии Windows-98. на других версиях той же 98-ой все работало отлично. Причиной бага было то что функции WinAPI именно в этой версии винды возвращали кривой указатель, пользуя который лаунчер рылся в куче запускаемого процесса.
0
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.06.2015, 05:54  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Если есть вопросы с NULL и порчей стэка то значит какой то указатель смотрит не туда. Учитывая что это JAVA то не туда его явно не вы указали а кто то другой вне вашего контроля (например кривая Java-машина). Или внешнее вмешательство. Был как то баг - при запуске одного приложения внешним лаунчером у него крешились java-машина которую он поднималю причем баг проявлялся именно на USA версии Windows-98. на других версиях той же 98-ой все работало отлично.
От этого слегка полегче на душе
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.06.2015, 06:20
Цитата Сообщение от GukZiLLA Посмотреть сообщение
От этого слегка полегче на душе
Причиной бага было то что функции WinAPI именно в этой версии винды возвращали кривой указатель, пользуя который лаунчер рылся в куче запускаемого процесса (отключал защиту армадилло).

Добавлено через 22 минуты
Цитата Сообщение от GukZiLLA Посмотреть сообщение
Так что пока приходится мириться с начальством.
Начальство бывает разное. Когда сам работал по найму начальство частенько занимало в результате позицию как мириться со мной. Но поскольку размер З/П был не в их компетенции (начальство отдела на заводе), то удержать меня им не удалось
0
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102
10.06.2015, 06:40  [ТС]
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Начальство бывает разное. Когда сам работал по найму начальство частенько занимало в результате позицию как мириться со мной. Но поскольку размер З/П был не в их компетенции (начальство отдела на заводе), то удержать меня им не удалось
А сейчас как? ИП?
0
 Аватар для Fulcrum_013
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
10.06.2015, 06:43
Цитата Сообщение от GukZiLLA Посмотреть сообщение
А сейчас как? ИП?
Временно безработный. Но это никоим образом не мешает фрилансить. И пилить свой большой проект.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
10.06.2015, 09:04
по первому сообщению я уверен что это не весь стек, уверен на 100%
0
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 1
23.09.2015, 18:09
NullPointerException в handleOnGetSentenceSuggestionsMultiple(S pellCheckerSession.java:222) - известный баг в Android 4.4.2. Лечится отключением спеллчекера для полей ввода (но это не всегда допустимо, к сожалению).

http://stackoverflow.com/quest... heckersess
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2015, 18:09
Помогаю со студенческими работами здесь

Что такое трассировка стека?
из Шилдта

Как обрабатывать ошибки на VBScript?
Подскажите как отловить ошибки на VBScript

Как правильно обрабатывать ошибки?
Как сделать чтобы ошибки обрабатывались как показано на картинке? См. участок зелёного цвета. Или это нужно делать с помощью `if` ...

Как лучше обрабатывать ошибки?
Как лучше обрабатывать ошибки в Си? У меня науме только такой вариант. Допустим есть функция, которая выполняет сложение матриц. ...

Как лучше всего обрабатывать ошибки в Си?
Как лучше всего обрабатывать ошибки в Си? Допустим, я через printf сообщаю причину ошибки, но где хранить о ней информацию?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru