android4.4 遇到 libhwui.so libGLES_mali.so 的native crash


I/DEBUG (26895): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 8581b210

I/DEBUG (26895): r0 811cfc10 r1 400db200 r2 8581b210 r3 00000001

I/DEBUG (26895): r4 811cfc10 r5 bedca37c r6 0093df4c r7 785c58e0

I/DEBUG (26895): r8 bedca3d8 r9 6d5bca4c sl 4161d700 fp bedca3ec

I/DEBUG (26895): ip 00000001 sp bedca378 lr 40cfc089 pc 8581b210 cpsr 600f0010

I/DEBUG (26895): d0 0000000000000010 d1 0000000000000004

I/DEBUG (26895): d2 000000000000000c d3 0000000000000004

I/DEBUG (26895): d4 0000000000000008 d5 3f80000000000000

I/DEBUG (26895): d6 3f80000000000000 d7 3f80000000000000

I/DEBUG (26895): d8 441b6dde44a1f73d d9 441b6dde40000000

I/DEBUG (26895): d10 4441669944a1f73d d11 00000000441b6dde

I/DEBUG (26895): d12 0000000000000000 d13 0000000000000000

I/DEBUG (26895): d14 0000000000000000 d15 0000000000000000

I/DEBUG (26895): d16 000000007c479534 d17 0000000000000004

I/DEBUG (26895): d18 000000007c479530 d19 000000822e606000

I/DEBUG (26895): d20 00000000000004c0 d21 ff0000000000003f

I/DEBUG (26895): d22 0000000000000030 d23 0000000000000001

I/DEBUG (26895): d24 4003bbb160000000 d25 0000000000000001

I/DEBUG (26895): d26 000000008227f7c0 d27 000000008227f7c1

I/DEBUG (26895): d28 0000000000000000 d29 0000000000000000

I/DEBUG (26895): d30 000000822e2d5000 d31 000000822e2d5000

I/DEBUG (26895): scr 28000017

I/DEBUG (26895):

I/DEBUG (26895): backtrace:

I/DEBUG (26895): #00 pc 00008210

I/DEBUG (26895): #01 pc 00026087 /system/lib/libhwui.so

I/DEBUG (26895): #02 pc 00026289 /system/lib/libhwui.so

I/DEBUG (26895): #03 pc 000262b9 /system/lib/libhwui.so

I/DEBUG (26895): #04 pc 0001e019 /system/lib/libhwui.so

I/DEBUG (26895): #05 pc 0006b82b /system/lib/libandroid_runtime.so

I/DEBUG (26895): #06 pc 0001ea4c /system/lib/libdvm.so (dvmPlatformInvoke+112)

I/DEBUG (26895): #07 pc 0004f4a3 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)

I/DEBUG (26895): #08 pc 00027e60 /system/lib/libdvm.so

I/DEBUG (26895): #09 pc 0002ee9c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)

I/DEBUG (26895): #10 pc 0002c500 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)

I/DEBUG (26895): #11 pc 00061dd5 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+392)

I/DEBUG (26895): #12 pc 00069e23 /system/lib/libdvm.so

I/DEBUG (26895): #13 pc 00027e60 /system/lib/libdvm.so

I/DEBUG (26895): #14 pc 0002ee9c /system/lib/libdvm.so (dvmMterpStd(Thread*)+76)

I/DEBUG (26895): #15 pc 0002c500 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)

I/DEBUG (26895): #16 pc 00061af1 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+336)

I/DEBUG (26895): #17 pc 0004afd3 /system/lib/libdvm.so

I/DEBUG (26895): #18 pc 00051eb3 /system/lib/libandroid_runtime.so

I/DEBUG (26895): #19 pc 00053447 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+354)

I/DEBUG (26895): #20 pc 0000105b /system/bin/app_process

I/DEBUG (26895): #21 pc 0000e45f /system/lib/libc.so (__libc_init+50)

I/DEBUG (26895): #22 pc 00000d7c /system/bin/app_process

I/DEBUG (26895):

I/DEBUG (26895): stack:

I/DEBUG (26895): bedca338 00000001

I/DEBUG (26895): bedca33c 0093df4c

I/DEBUG (26895): bedca340 785c58e0

I/DEBUG (26895): bedca344 bedca3d8 [stack]

I/DEBUG (26895): bedca348 6d5bca4c

I/DEBUG (26895): bedca34c 4161d700

I/DEBUG (26895): bedca350 bedca3ec [stack]

I/DEBUG (26895): bedca354 76995268 /system/vendor/lib/egl/libGLES_mali.so (glDeleteTextures+44)

I/DEBUG (26895): bedca358 00000000

I/DEBUG (26895): bedca35c 811cfc10

I/DEBUG (26895): bedca360 bedca37c [stack]

I/DEBUG (26895): bedca364 40ce8bf5 /system/lib/libhwui.so (android::uirenderer::Caches::deleteTexture(unsigned int)+54)

I/DEBUG (26895): bedca368 785c57e0

I/DEBUG (26895): bedca36c 857e7ec0

I/DEBUG (26895): bedca370 00000001

I/DEBUG (26895): bedca374 40cfc081 /system/lib/libhwui.so

I/DEBUG (26895): #00 bedca378 785c58e0

I/DEBUG (26895): ........ ........

I/DEBUG (26895): #01 bedca378 785c58e0

I/DEBUG (26895): bedca37c 00000000

I/DEBUG (26895): bedca380 858e772c

I/DEBUG (26895): bedca384 785c58e4

I/DEBUG (26895): bedca388 858e76fc

I/DEBUG (26895): bedca38c 0000004a

I/DEBUG (26895): bedca390 6d5bca54

I/DEBUG (26895): bedca394 40cfc28b /system/lib/libhwui.so

I/DEBUG (26895): #02 bedca398 785c58e0

I/DEBUG (26895): bedca39c 785c58e4

I/DEBUG (26895): bedca3a0 00000000

I/DEBUG (26895): bedca3a4 40cfc2bd /system/lib/libhwui.so

I/DEBUG (26895):

I/DEBUG (26895): memory near r0:


APP在频繁绘制后,遇到了这个native崩溃。
通过不断的排查,打断点之后,发现是onDraw之后崩溃,再结合崩溃的.so名称都和显卡有关。推测是APP的硬件加速有问题。
把绘制的view设为软件加速后,不再崩溃。

http://www.cnblogs.com/YYPapa/p/6850939.html

http://ask.dcloud.net.cn/question/52882

深层次原因应该是不同的线程操作显存造成野指针问题。5.0及以上没这个问题。

你可能感兴趣的:(android4.4 遇到 libhwui.so libGLES_mali.so 的native crash)