Я погуглил / стек переполнил мои булочки и реализовал различные решения по всей моей кодовой базе, надеясь попасть в иголку в стоге сена, но пока ничего, решения включают в себя:
- Замена любых заданий Timer на обработчики,
- Убедиться, что Canvas никогда не доступен вне onDraw, и
- Убедиться, что все в onAnimationEnd, которое обращается к пользовательскому интерфейсу, действительно находится в потоке пользовательского интерфейса
Я не могу воспроизвести этот сбой локально, чтобы спасти мою жизнь, и моя команда по обеспечению качества не может. Это происходит только на Android 8. Мы получили только отчеты о сбоях в работе.
Причина крушения:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
_ZN7android10uirenderer20DeferredLayerUpdater5applyEv
Обратный след, как показывает репортер ANR и Сбоев Google:
#00 pc 0000000000049786 /system/lib/libhwui.so
(_ZN7android10uirenderer20DeferredLayerUpdater5applyEv+5)
#01 pc 00000000000378c3 /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread13DrawFrameTask14syncFrameStateERNS0_8TreeInfoE+94)
#02 pc 00000000000377a5 /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread13DrawFrameTask3runEv+96)
#03 pc 000000000003c127 /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+166)
#04 pc 000000000000d469 /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+140)
#05 pc 0000000000079fe9 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+80)
#06 pc 0000000000047db7 /system/lib/libc.so (_ZL15__pthread_startPv+22)
#07 pc 000000000001b0a5 /system/lib/libc.so (__start_thread+32)
Если у кого-то есть понимание, я был бы очень признателен! Возможно, даже просто, как увидеть> 60 дней в прошлом в Play Store для отчетов о сбоях, чтобы я мог видеть, когда эта ошибка началась, и попытаться сопоставить это что-то. Спасибо.