Я вижу этот собственный сбой со следующей трассировкой стека.
Это происходит только в Android 7.0 и 7.1. Ничего нового не было добавлено в приложение, которое находится в производстве в течение нескольких лет, но с увеличением количества устройств, обновляемых до Nougat, этот сбой сейчас часто случается и становится неприятностью.
Любой совет будет принят во внимание.
native: pc 000000000007a6c4 /system/lib64/libc.so (tgkill+8)
native: pc 0000000000077920 /system/lib64/libc.so (pthread_kill+64)
native: pc 000000000002538c /system/lib64/libc.so (raise+24)
native: pc 000000000001d24c /system/lib64/libc.so (abort+52)
native: pc 000000000001225c /system/lib64/libcutils.so (__android_log_assert+224)
native: pc 00000000000610e0 /system/lib64/libhwui.so
native: pc 000000000003908c /system/lib64/libhwui.so
native: pc 000000000003609c /system/lib64/libhwui.so
native: pc 000000000003b4fc /system/lib64/libhwui.so
native: pc 000000000003c520 /system/lib64/libhwui.so
native: pc 000000000003e694 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+152)
native: pc 00000000000127f0 /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+336)
native: pc 00000000000a50b0 /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
native: pc 00000000000770f4 /system/lib64/libc.so (_ZL15__pthread_startPv+204)
native: pc 000000000001e7d0 /system/lib64/libc.so (__start_thread+16)
Вот список затронутых устройств:
ОБНОВЛЕНИЕ 7/18:
Все еще не смог добраться до корня этого, поэтому я решил приобрести устройство, которое было наиболее распространенным и имело разумную цену, которым оказалась версия Samsung Galaxy J3 2017 с Android 7.0. К сожалению, я все еще не могу воспроизвести аварию.
Я также улучшил использование памяти в производственном приложении, но сбой все еще происходит.
Судя по всем комментариям и моим собственным исследованиям, похоже, что это связано с динамически связанными NDK, но я не использую их, и трудно выяснить, есть ли какие-либо зависимости.
Я хотел бы поделиться своими зависимостями, было бы здорово, если бы другие люди, столкнувшиеся с той же проблемой, могли сообщить, используют ли они одну из тех же зависимостей - возможно, мы сможем определить виновника таким образом.
// App Compat
compile 'com.android.support:support-v4:23.0.1'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:cardview-v7:23.0.1'
compile 'com.android.support:recyclerview-v7:23.0.1'
// Play Services
compile 'com.google.android.gms:play-services-location:8.3.0'
compile 'com.google.android.gms:play-services-maps:8.3.0'
compile 'com.google.android.gms:play-services-analytics:8.3.0'
compile 'com.google.android.gms:play-services-appindexing:8.3.0'
compile 'com.google.android.gms:play-services-ads:8.3.0'
// Misc Libraries
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1@aar'
compile files('app/libs/htmlcleaner-2.7.jar')
compile files('app/libs/protobuf-java-2.6.0.jar')
compile files('app/libs/nineoldandroids-2.4.0.jar')
// Fabric
compile('com.twitter.sdk.android:twitter:1.13.0@aar') { transitive = true; }
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; }
Для людей, столкнувшихся с таким же сбоем, ответьте в комментариях, если вы используете какую-либо из этих зависимостей / версий. Возможно, мы сможем выделить проблему зависимости.
Ответы:
Взгляд на предоставленный вами дамп дает некоторые подсказки:
_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv
Это указывает на то, что ошибка произошла в потоке пользовательского интерфейса.
libhwui.so x 6
Это указывает на то, что это происходит в середине некоторого кода, связанного с графикой / пользовательским интерфейсом.
libcutils.so - __android_log_assert
Это обработчик утверждает, поэтому , скорее всего , какое - то утверждают было нарушено в
libwhui
.прервать:
Это приложение сообщает операционной системе о необходимости аварийного завершения работы.
Raise + pthread_kill + tgkill: это операционная система (Android), закрывающая приложение.
Вы можете увидеть некоторую документацию по отладке подобных сбоев здесь .
В любом случае, я боюсь, что дальше этой грубой и неточной интерпретации данных, которые вы представили, действительно сложно строить предположения.
Возможно, если вы поймали ошибку, когда она была прикреплена к программе просмотра журналов Android, у вас было бы больше данных для конкретного приложения (или даже сообщение об ошибке, которое обычно выдает функция assert).
Мой совет - использовать что-то вроде ACRA, чтобы отследить все детали, относящиеся к ошибке, или получить затронутое устройство и фактически воспроизвести его при подключении к отладчику.
Удачи!
РЕДАКТИРОВАТЬ 2017-06-16 : Я просто хочу добавить дополнительный информационный комментарий от Fco P. Очевидно, Google решил внести некоторые изменения в то, какие собственные библиотеки разрешено запускать в последних версиях Android (7.x). Более подробная информация по этой ссылке .
источник
Об этом сообщается здесь: https://issuetracker.google.com/issues/37123764.
Чтобы воспроизвести: Получите затронутый режим, включите режим разработчика и установите для фоновых действий значение 0. Также включите «показывать фоновые сбои».
Затем откройте приложение и снова закройте его: вы увидите сбой.
источник
Нет в комментариях (недостаточная репутация).
Из перечисленных вами зависимостей мы используем:
разные версии, чем ваша. У меня есть сильное подозрение, что в play-services-maps есть ошибка.
Возможно, вы используете фрагмент карты в окне просмотра, как это делаем мы и многие люди, о которых идет речь, уже упомянутые Кодзи Мацубара ( https://issuetracker.google.com/issues/37123764 )
источник
Не знаю, может быть, эта проблема похожа на нашу, а может и другая, потому что я вижу в зависимостях в том числе
carview
. Поделись здесь надеюсь пригодится кому-то в будущемЯ также столкнулся с проблемой на Android 7.0 и 7.1 ниже
После исследования и поиска на gooogle я заменил
cardview
,Framelayout
тогда эта проблема была решенаисточник
cardview
,Framelayout
затем эта проблема была решена, эта проблемаbecause I see in dependencies have including carview
У меня была такая же проблема в консоли Google Play для тех же устройств, что и вы.
В моем случае проблема была в TextureView с анимацией в отдельном потоке с блокировкой и разблокировкой холста.
Я изменил анимацию TextureView на анимацию invalidate-onDraw для Android 7 и 7.1, и это помогло.
источник
Я вижу эту проблему из отчета о сбое на устройстве одного пользователя - «Huawei Honor 7X (HWBND-H)» - под управлением Android 8.0. Поскольку это не происходит в полевых условиях для других устройств / версий ОС, я считаю, что это могло быть уже исправлено в обновлениях ОС (которые этот пользователь не поднял, или, возможно, Huawei не предоставил).
источник