android native crash by lib64/libhwui.so ,以及如何定位问题
android native crash by lib64/libhwui.so , and how to locate the problem
就在我用canvas和位图画线和点的时候。
它总是会在绘图的 serval 分钟内发生
[模拟器是 Pixel 4 android 12 beta]
代码:
Rooted: 'No'
API level: '30'
OS version: '11'
Kernel version: 'Linux version 4.14.228-g609f9e512cd4-ab7337579 #1 SMP PREEMPT Wed May 5 05:16:48 UTC 2021 (aarch64)'
ABI list: 'arm64-v8a,armeabi-v7a,armeabi'
Manufacturer: 'Google'
Brand: 'google'
Model: 'Pixel 4'
Build fingerprint: 'google/flame/flame:S/SPB2.210513.011/7465093:user/release-keys'
ABI: 'arm64'
pid: 27941, tid: 28387, name: Thread-173 >>> com.xx.app <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7c0002590c
x0 b400007c00025904 x1 b400007cddcc3d48 x2 0000007ba821ab50 x3 0000007ba821aac0
x4 0000007ba821ab40 x5 0000000000000004 x6 0000007ba821b888 x7 aaaaaaaaaaaaaaab
x8 0000007ba821a600 x9 b400007bddcac3c4 x10 0000007e6b84a000 x11 0000007e6ba91060
x12 0000000000000034 x13 0000007e6ba28cac x14 0000000000000000 x15 0000000000000000
x16 0000007e6c024be8 x17 0000007e6a5f7c20 x18 0000007aef7ec000 x19 0000007ba821bf10
x20 0000007ba821bd90 x21 0000007ba821a608 x22 0000000000000005 x23 0000000000000000
x24 b400007bddcb6320 x25 0000007ba821e000 x26 b400007bddcac3c0 x27 0000000200000004
x28 0000007ba821ab50 x29 0000007ba821a5b0
sp 0000007ba821a5b0 lr 0000007e6bc5bb04 pc 0000007e6bd38e10
backtrace:
#00 pc 0000000000538e10 /system/lib64/libhwui.so
#01 pc 000000000045bb04 /system/lib64/libhwui.so
#02 pc 000000000046b918 /system/lib64/libhwui.so
#03 pc 000000000046b2dc /system/lib64/libhwui.so
#04 pc 000000000030cea4 /system/lib64/libhwui.so
#05 pc 000000000032c170 /system/lib64/libhwui.so
#06 pc 00000000002d5f18 /system/lib64/libhwui.so
#07 pc 00000000003102d0 /system/lib64/libhwui.so
#08 pc 00000000003bc3b4 /system/lib64/libhwui.so
#09 pc 00000000003bbcb0 /system/lib64/libhwui.so
#10 pc 000000000047efd4 /system/lib64/libhwui.so
#11 pc 00000000001610a8 /system/framework/arm64/boot-framework.oat
logcat:
--------- tail end of log main (/system/bin/logcat -b main -d -v threadtime -t 200 --pid 27941 *:D)
可能是画线造成的。
我添加同步并修复它。代码如下:
synchronized(mCanvas) {
mCanvas.drawText('')
postInvalidate()
}
就在我用canvas和位图画线和点的时候。
它总是会在绘图的 serval 分钟内发生
[模拟器是 Pixel 4 android 12 beta]
代码:
Rooted: 'No'
API level: '30'
OS version: '11'
Kernel version: 'Linux version 4.14.228-g609f9e512cd4-ab7337579 #1 SMP PREEMPT Wed May 5 05:16:48 UTC 2021 (aarch64)'
ABI list: 'arm64-v8a,armeabi-v7a,armeabi'
Manufacturer: 'Google'
Brand: 'google'
Model: 'Pixel 4'
Build fingerprint: 'google/flame/flame:S/SPB2.210513.011/7465093:user/release-keys'
ABI: 'arm64'
pid: 27941, tid: 28387, name: Thread-173 >>> com.xx.app <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7c0002590c
x0 b400007c00025904 x1 b400007cddcc3d48 x2 0000007ba821ab50 x3 0000007ba821aac0
x4 0000007ba821ab40 x5 0000000000000004 x6 0000007ba821b888 x7 aaaaaaaaaaaaaaab
x8 0000007ba821a600 x9 b400007bddcac3c4 x10 0000007e6b84a000 x11 0000007e6ba91060
x12 0000000000000034 x13 0000007e6ba28cac x14 0000000000000000 x15 0000000000000000
x16 0000007e6c024be8 x17 0000007e6a5f7c20 x18 0000007aef7ec000 x19 0000007ba821bf10
x20 0000007ba821bd90 x21 0000007ba821a608 x22 0000000000000005 x23 0000000000000000
x24 b400007bddcb6320 x25 0000007ba821e000 x26 b400007bddcac3c0 x27 0000000200000004
x28 0000007ba821ab50 x29 0000007ba821a5b0
sp 0000007ba821a5b0 lr 0000007e6bc5bb04 pc 0000007e6bd38e10
backtrace:
#00 pc 0000000000538e10 /system/lib64/libhwui.so
#01 pc 000000000045bb04 /system/lib64/libhwui.so
#02 pc 000000000046b918 /system/lib64/libhwui.so
#03 pc 000000000046b2dc /system/lib64/libhwui.so
#04 pc 000000000030cea4 /system/lib64/libhwui.so
#05 pc 000000000032c170 /system/lib64/libhwui.so
#06 pc 00000000002d5f18 /system/lib64/libhwui.so
#07 pc 00000000003102d0 /system/lib64/libhwui.so
#08 pc 00000000003bc3b4 /system/lib64/libhwui.so
#09 pc 00000000003bbcb0 /system/lib64/libhwui.so
#10 pc 000000000047efd4 /system/lib64/libhwui.so
#11 pc 00000000001610a8 /system/framework/arm64/boot-framework.oat
logcat:
--------- tail end of log main (/system/bin/logcat -b main -d -v threadtime -t 200 --pid 27941 *:D)
可能是画线造成的。
我添加同步并修复它。代码如下:
synchronized(mCanvas) {
mCanvas.drawText('')
postInvalidate()
}