Подтвердить что ты не робот

Fatal signal 11 (SIGSEGV) code = 2 на эмуляторе genymotion, не использующем NDK

В моем приложении не используется NDK. Я тестирую его на эмуляторе GenyMotion Nexus 7, и проблему довольно сложно воспроизвести, и я до сих пор не понял правильный способ ее воспроизвести. Иногда приложение работает отлично в течение длительного времени, а иногда оно просто сбой и автоматически перезапускается примерно через 30 секунд после использования.

EDIT: я не 100%, но это происходит только в эмуляторе genymotion, но не в обычном эмуляторе Android (я продолжу тестирование).

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

Один из фрагментов ленивых изображений загрузок (из памяти, диска или Интернета).

Я новичок в этом динамическом добавлении и удалении фрагментов, поэтому я уверен, что там что-то может быть.

В любом случае, пожалуйста, помогите мне декодировать этот дамп и выяснить, что вызывает крушение (я попытаюсь пропустить материал, который, я думаю, не имеет значения):

12-17 16:52:18.344    1255-1255/? A/libc﹕ Fatal signal 11 (SIGSEGV) at 0x97858094 (code=2), thread 1255 (hiexpressgradle)
12-17 16:52:18.448      121-121/? I/DEBUG﹕ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
12-17 16:52:18.448      121-121/? I/DEBUG﹕ Build fingerprint: 'generic/vbox86tp/vbox86tp:4.3/JLS36G/eng.buildbot.20131127.101043:userdebug/test-keys'
12-17 16:52:18.448      121-121/? I/DEBUG﹕ Revision: '0'
12-17 16:52:18.448      121-121/? I/DEBUG﹕ pid: 1255, tid: 1255, name: hiexpressgradle  >>> XXX <<<
12-17 16:52:18.448      121-121/? I/DEBUG﹕ signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 97858094
12-17 16:52:18.608      121-121/? I/DEBUG﹕ eax 00000000  ebx b754a6fc  ecx 0000000e  edx 978580a2
12-17 16:52:18.608      121-121/? I/DEBUG﹕ esi 0000000c  edi 00000001
12-17 16:52:18.608      121-121/? I/DEBUG﹕ xcs 00000073  xds 0000007b  xes 0000007b  xfs 00000000  xss 0000007b
12-17 16:52:18.608      121-121/? I/DEBUG﹕ eip b754a6fc  ebp b94985e8  esp bfe29398  flags 00210292
12-17 16:52:18.608      121-121/? E/Corkscrew﹕ unrecognized DW_CFA_* instruction: 0x10
12-17 16:52:18.608      121-121/? I/DEBUG﹕ backtrace:
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #00  pc 0002f6fc  /system/lib/libc.so (memset+140)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #01  pc 00015c6f  /system/lib/libhwui.so (android::uirenderer::FontRenderer::cacheBitmap(SkGlyph const&, android::uirenderer::CachedGlyphInfo*, unsigned int*, unsigned int*, bool)+511)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #02  pc 00011aea  /system/lib/libhwui.so (android::uirenderer::Font::precache(SkPaint*, char const*, int)+922)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #03  pc 0001414e  /system/lib/libhwui.so (android::uirenderer::FontRenderer::precache(SkPaint*, char const*, int, android::uirenderer::Matrix4 const&)+78)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #04  pc 00024aa6  /system/lib/libhwui.so (android::uirenderer::DrawTextOp::onDefer(android::uirenderer::OpenGLRenderer&, int*, void**)+486)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ stack:
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29358  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2935c  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29360  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29364  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29368  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2936c  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29370  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29374  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29378  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2937c  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29380  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29384  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29388  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2938c  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29390  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29394  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #00  bfe29398  b5ba5aac  /system/lib/libhwui.so
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2939c  b5b3ec70  /system/lib/libhwui.so (android::uirenderer::FontRenderer::cacheBitmap(SkGlyph const&, android::uirenderer::CachedGlyphInfo*, unsigned int*, unsigned int*, bool)+512)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #01  bfe293a0  97858094
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293a4  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293a8  0000000e
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293ac  bfe2940c  [stack]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293b0  b9726ae4  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293b4  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293b8  b934c340  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293bc  b6bff210  /system/lib/libskia.so (SkGlyphCache::findImage(SkGlyph const&)+144)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293c0  b972f550  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293c4  b934b588  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293c8  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293cc  00000032
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293d0  bfe29410  [stack]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293d4  bfe2940c  [stack]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293d8  97858008
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe293dc  b6eb8d48  /system/lib/libskia.so
12-17 16:52:18.608      121-121/? I/DEBUG﹕ ........  ........
12-17 16:52:18.608      121-121/? I/DEBUG﹕ #02  bfe29430  b94985e8  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29434  b9726ae4  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29438  b966b9c8  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2943c  bfe29470  [stack]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29440  bfe29474  [stack]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29444  00000001
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29448  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2944c  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29450  3f800000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29454  00000010
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29458  b966b9c8  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2945c  b9670dc6  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29460  b94907a4  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29464  b9670e28  [heap]
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe29468  3f800026
12-17 16:52:18.608      121-121/? I/DEBUG﹕ bfe2946c  00000000
12-17 16:52:18.608      121-121/? I/DEBUG﹕ ........  ........
12-17 16:52:18.608      121-121/? I/DEBUG﹕ memory map around fault addr 97858094:
12-17 16:52:18.608      121-121/? I/DEBUG﹕ 977fa000-97858000 r-x /dev/ashmem/dalvik-jit-code-cache (deleted)
12-17 16:52:18.608      121-121/? I/DEBUG﹕ 97858000-97859000 r-x
12-17 16:52:18.608      121-121/? I/DEBUG﹕ 97859000-978d9000 rw-

Спасибо за ваш вход @Simon, после некоторого тестирования я начал получать ошибку и в эмуляторе Android. Но на эмуляторе Android это было хорошее старое исключение OutOfMemory. Так что получается, что мой управляемый менеджер (на одном из фрагментов) имел огромную утечку памяти, где он раздувал бы HashMap с помощью drawables. Это стало проблемой только в том случае, когда я реализовал макет двух панелей, поскольку DrawableManager всегда оставался в памяти (потому что фрагмент выбора категории, в котором хранится менеджер, никогда не воссоздается) даже при переключении категорий.

РЕДАКТИРОВАТЬ: Несмотря на то, что я решил утечку памяти, мой эмулятор genymotion по-прежнему падает с тем же SIGSEGV, поэтому я думаю, что этот вопрос все еще открыт.

4b9b3361

Ответ 1

Протестировано Решение:

укажите это разрешение в явном виде:

 <application        
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/CustomTheme"
        android:allowBackup="true"           
        android:vmSafeMode="true"       
        android:allowClearUserData="true"
        android:hardwareAccelerated="true" >

Ответ 2

Я тоже испытывал эту проблему, особенно с изображением 4.3 на GenyMotion. Я переключился на образ 4.2.2 и больше не испытал сбой.

Ответ 3

решение, которое я нашел сам, чтобы изменить некоторый атрибут в файле androidmanifest.xml

Debuggable = True
VM safe mode =True
Allow Backup = True
Allow Clear user date= True
Hardware Accelerated = True 

(я сделал это, и у меня не было этой проблемы, и мое приложение бежало без проблем, и я использую Genymotion Too) В меню приложения извините, я забыл об этом