Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для GukZiLLA
36 / 36 / 2
Регистрация: 30.11.2013
Сообщений: 102

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

09.06.2015, 23:19. Показов 1655. Ответов 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 / 1575 / 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 / 1575 / 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 / 1575 / 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 / 1575 / 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 / 1575 / 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 / 1575 / 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 / 1575 / 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
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru