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)