问题
I'm seeing this native crash with the following stack trace.
This happens in Android 7.0 & 7.1 only. Nothing new has been added to the app, which has been in production for a few years, but with more devices being updated to Nougat this crash happens frequently now and is becoming a nuisance.
Any advice would be appreciated.
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)
Here's a list of devices that are affected:
UPDATE 7/18:
Still unable to get to the root of this, so I decided to purchase a device which had most occurrences and was reasonably priced, which turned out to be Samsung Galaxy J3 2017 version with Android 7.0. Unfortunately I am still unable to reproduce the crash.
I've also made some memory usage improvements to the app in production, but the crash is still happening.
From all the comments and my own research it seems to be related to dynamically linked NDKs, but I'm not using any and its hard to find out if any of the dependencies do.
I would like to share my dependencies, it would be great if other folks facing the same issue could call out if they are using one of the same dependencies - perhaps we can spot the culprit this way.
// 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; }
For folks facing the same crash, please respond in comments if you are using any of these dependencies / versions. Maybe we can single out the problem dependency.
回答1:
Looking at the dump you provided gives some clues:
_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv
This indicates that the error occurred in the UI thread.
libhwui.so x 6
This indicates that this is happening in the middle of some graphics/ui related code.
libcutils.so - __android_log_assert
This is an assert handler, so most likely some kind of assert was violated in libwhui
.
abort:
This is the application telling the O/S to shut down "abnormally".
raise + pthread_kill + tgkill: This is the O/S (Android) shutting down the app.
You can see some documentation for debugging these kinds of crashes here.
Anyway, I am afraid it is really difficult to speculate beyond this coarse and imprecise interpretation of the data you presented.
Maybe if you caught the bug while it was attached to the Android log viewer, you would have more application specific data (or even an error message which the assert function usually puts out).
My tip is to use something like ACRA to track down all the details pertaining to the error, or get hold of an affected device and actually reproduce it while attached to a debugger.
Good luck!
EDIT 2017-06-16: I just want to add some extra info courtesy comment by Fco P. Apparently Google has decided to make some changes to what native libraries are allowed to run in latest versions of Android (7.x). More details are in this link.
回答2:
This is reported here: https://issuetracker.google.com/issues/37123764
To reproduce: Get an affected mode, enable developer mode, and set background activities to 0. Also enable "show background crashes".
Then open the app, and close it again: You will see the crash.
回答3:
Not in comments (insufficient rep).
Of the dependencies you have listed we use:
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:support-v4:25.3.1'
compile 'com.google.android.gms:play-services-maps:10.2.1'
compile 'com.google.android.gms:play-services-location:10.2.1'
different versions than yours. I have strong suspection that play-services-maps contains the bug.
Perhaps you use map fragment in viewpager as we do and many people in issue already mentioned by Koji Matsubara (https://issuetracker.google.com/issues/37123764)
回答4:
I don't know, maybe this problem like ours, maybe different, because I see in dependencies have including carview
. Share here hope useful for someone in future
I also faced issue on Android 7.0 and 7.1 bellow
03-04 23:44:51.489 2173-2173/? A/DEBUG: Abort message: 'Error: Ambient Vertex Buffer overflow!!! used 420, total 284'
03-04 23:44:51.489 2173-2173/? A/DEBUG: eax 00000000 ebx 0000083b ecx 00000857 edx 00000006
03-04 23:44:51.489 2173-2173/? A/DEBUG: esi d19ff978 edi d19ff920
03-04 23:44:51.489 2173-2173/? A/DEBUG: xcs 00000023 xds 0000002b xes 0000002b xfs 0000006b xss 0000002b
03-04 23:44:51.489 2173-2173/? A/DEBUG: eip f00a6bb9 ebp d19fee68 esp d19fee0c flags 00000292
03-04 23:44:51.555 2173-2173/? A/DEBUG: backtrace:
03-04 23:44:51.555 2173-2173/? A/DEBUG: #00 pc 00000bb9 [vdso:f00a6000] (__kernel_vsyscall+9)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #01 pc 0007a2ec /system/lib/libc.so (tgkill+28)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #02 pc 00075b35 /system/lib/libc.so (pthread_kill+85)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #03 pc 0002784a /system/lib/libc.so (raise+42)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #04 pc 0001ee26 /system/lib/libc.so (abort+86)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #05 pc 0000fa65 /system/lib/libcutils.so (__android_log_assert+245)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #06 pc 00084356 /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG: #07 pc 0003a5ba /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG: #08 pc 00083d04 /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG: #09 pc 0008c5df /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG: #10 pc 0008e6d8 /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG: #11 pc 0008e5d2 /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG: #12 pc 000350fe /system/lib/libhwui.so
03-04 23:44:51.555 2173-2173/? A/DEBUG: #13 pc 0001201f /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+207)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #14 pc 0006e53b /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+111)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #15 pc 00011873 /system/lib/libutils.so (_ZN13thread_data_t10trampolineEPKS_+259)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #16 pc 00075292 /system/lib/libc.so (_ZL15__pthread_startPv+210)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #17 pc 0002028e /system/lib/libc.so (__start_thread+30)
03-04 23:44:51.555 2173-2173/? A/DEBUG: #18 pc 0001e066 /system/lib/libc.so (__bionic_clone+70)
After research and search on gooogle, I replaced cardview
by Framelayout
then this issue was resolved
回答5:
I had the same issue in google play console for the same devices as you.
In my case the issue was in TextureView with animation in separate thread with lock and unlock canvas.
I changed TextureView animation to the invalidate-onDraw animation for 7 and 7.1 android and that helped.
回答6:
I am seeing this issue from a crash report on one user's device - 'Huawei Honor 7X (HWBND-H)' - running Android 8.0. Since it is not occurring in the field for other devices/OS versions, my thought is that it might already have been fixed in OS updates (that this user has not picked up, or possibly Huawei has not provided).
backtrace:
#00 pc 000000000006a808 /system/lib64/libc.so (tgkill+8)
#01 pc 000000000001db50 /system/lib64/libc.so (abort+88)
#02 pc 0000000000007f4c /system/lib64/liblog.so (__android_log_assert+304)
#03 pc 000000000004e314 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread10EglManager13createSurfaceEP13ANativeWindow+192)
#04 pc 000000000004c790 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread14OpenGLPipeline10setSurfaceEPNS_7SurfaceENS1_12SwapBehaviorE+64)
#05 pc 00000000000492b4 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread13CanvasContext10setSurfaceEPNS_7SurfaceE+140)
#06 pc 000000000005123c /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthreadL17Bridge_initializeEPNS1_14initializeArgsE+16)
#07 pc 0000000000052fc4 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread22MethodInvokeRenderTask3runEv+24)
#08 pc 0000000000053f1c /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+348)
#09 pc 0000000000011670 /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+280)
#10 pc 00000000000be1e8 /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+136)
#11 pc 00000000000671b8 /system/lib64/libc.so (_ZL15__pthread_startPv+36)
#12 pc 000000000001eee4 /system/lib64/libc.so (__start_thread+68)
来源:https://stackoverflow.com/questions/44080809/android-7-native-crash-libc-so-tgkill