Я вижу этот собственный сбой со следующей трассировкой стека.
Это происходит только в 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)
Вот список затронутых устройств:
ОБНОВЛЕНИЕ 18.07.
Все еще не в состоянии разобраться в этом, поэтому я решил приобрести устройство, которое имело наибольшее количество случаев и было по разумной цене, которым оказалась версия 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; }
Для людей, столкнувшихся с таким же сбоем, пожалуйста, ответьте в комментариях, если вы используете какую-либо из этих зависимостей/версий. Возможно, мы сможем выделить проблемную зависимость.
AndroidNativeBuffer
из Android 4.4 отличается от Android 8.1. Они используют один из зарезервированных указателей, поэтому, возможно, если вы не обнулили объект должным образом, это является причиной сбоя. Это всего лишь предложение, которое я пока не могу проверить, но буду рад, если кто-нибудь его проверит. - person Alexey Andronov   schedule 12.10.2018