Я читал другие публикации о причинах появления SIGSEGV в приложении Android. Я планирую просмотреть свое приложение на предмет возможных NullPointers, связанных с использованием Canvas, но мой SIGSEGV каждый раз выдает другой адрес памяти. Плюс я видел code=1 и code=2. Если бы адрес памяти был 0x00000000, я бы догадался, что это NullPointer.
Последним, что я получил, был код=2:
A/libc(4969): Fatal signal 11 (SIGSEGV) at 0x42a637d9 (code=2)
Есть предложения, как это отследить?
У меня есть подозреваемый, но мне это не интересно. пока экспериментирую с этим. Мое приложение использует API OSMDroid для автономного сопоставления. Класс OverlayItem представляет маркеры/узлы на карте. У меня есть служба, которая собирает данные через сеть для заполнения OverlayItem, которые затем отображаются на карте. Стремясь упростить свой дизайн, я расширил OverlayItem до собственного класса NodeOverlayItem, который включает в себя некоторые дополнительные атрибуты, которые я использую в действии пользовательского интерфейса и в Сервисе. Это дало мне единую точку информации об элементе для пользовательского интерфейса и сервиса. Я использовал намерения для трансляции в действие, чтобы обновить карту пользовательского интерфейса, когда что-то изменилось. Действие привязывается к Сервису, и существует метод Сервиса для получения списка NodeOverlayItem. Я думаю, что это может быть использование OSMDroid API OverlayItem и одновременное обновление информации об узле моей Службы. (проблема параллелизма)
Когда я пишу это, я думаю, что это действительно проблема. Головная боль не в том, чтобы отделить Node и OverlayItem от NodeOverlayItem, а в том, что для действия потребуются некоторые данные из узла, которые хранит служба. Кроме того, при создании действия (onResume и т. д.) объекты OverlayItem необходимо будет воссоздать из данных узла, которые Служба поддерживала, пока действие отсутствовало. например Вы запускаете приложение, Служба собирает данные, пользовательский интерфейс отображает их, вы переходите на главную страницу, а затем обратно в приложение, Activity необходимо будет извлечь и заново создать OverlayItem из последних данных узла службы.
Я знаю, что это не очень хороший и ясный вопрос. Как будто все мои вопросы SO узкоспециализированы или малопонятны. Если у кого-нибудь есть предложения о том, как интерпретировать эти ошибки SIGSEGV, мы будем очень признательны!
ОБНОВЛЕНИЕ
Вот последний сбой, зафиксированный во время сеанса отладки. У меня есть три таких устройства, которые используются для тестирования, и не все они выходят из строя, когда я разрабатываю и тестирую. Я включил немного больше, чтобы можно было отметить журналирование GC. Как видите, проблема, вероятно, не связана с исчерпанием памяти.
03-03 02:02:38.328: I/CommService(7477): Received packet from: 192.168.1.102
03-03 02:02:38.328: I/CommService(7477): Already processed this packet. It's a re-broadcast from another node, or from myself. It's not a repeat broadcast though.
03-03 02:02:38.406: D/CommService(7477): Checking OLSRd info...
03-03 02:02:38.460: D/CommService(7477): Monitoring nodes...
03-03 02:02:38.515: D/dalvikvm(7477): GC_CONCURRENT freed 2050K, 16% free 17151K/20359K, paused 3ms+6ms
03-03 02:02:38.515: I/CommService(7477): Received packet from: 192.168.1.102
03-03 02:02:38.515: D/CommService(7477): Forwarding packet (4f68802cf10684a83ac4936ebb3c934d) along to other nodes.
03-03 02:02:38.609: I/CommService(7477): Received packet from: 192.168.1.100
03-03 02:02:38.609: D/CommService(7477): Forwarding packet (e4bc81e91ec92d06f83e03068f52ab4) along to other nodes.
03-03 02:02:38.609: D/CommService(7477): Already processed this packet: 4204a5b27745ffe5e4f8458e227044bf
03-03 02:02:38.609: A/libc(7477): Fatal signal 11 (SIGSEGV) at 0x68f52abc (code=1)
03-03 02:02:38.914: I/DEBUG(4008): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-03 02:02:38.914: I/DEBUG(4008): Build fingerprint: 'Lenovo/IdeaTab_A1107/A1107:4.0.4/MR1/eng.user.20120719.150703:user/release-keys'
03-03 02:02:38.914: I/DEBUG(4008): pid: 7477, tid: 7712 >>> com.test.testm
Подробнее здесь: https://stackoverflow.com/questions/178 ... be-tracked
Неустранимый сигнал Android 11 (SIGSEGV) по адресу 0x636f7d89 (код = 1). Как это можно отследить? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Фатальный сигнал 11 (SIGSEGV), код 1, адрес неисправности 0xf452 в tid 1509
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-