android - 在某些设备上调用 NotificationCompat.Builder.setLargeIcon(bitmap) 时发生本机崩溃
问题描述
以下是我的崩溃报告(SIGABRT 本机错误):
1 #00 pc 0001a3d4 /system/lib/libc.so (abort+63) [armeabi-v8]
2 #01 pc 00006581 /system/lib/liblog.so (__android_log_assert+160) [armeabi-v8]
3 #02 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
4 #03 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
5 #04 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
6 #05 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
7 #06 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
8 #07 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
9 #08 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
10 #09 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
11 #10 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
12 #11 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
13 #12 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
14 #13 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
15 #14 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
16 #15 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
17 #16 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
18 #17 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
19 #18 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
20 #19 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
21 #20 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
22 #21 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
23 #22 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
24 #23 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
25 #24 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
26 #25 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
27 #26 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
28 #27 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
29 #28 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
30 #29 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
31 #30 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
32 #31 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
33 #32 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
34 #33 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
35 #34 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
36 #35 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
37 #36 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
38 #37 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
39 #38 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
40 #39 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
41 #40 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
42 #41 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
43 #42 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
44 #43 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
45 #44 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
46 #45 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
47 #46 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
48 #47 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
49 #48 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
50 #49 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
51 #50 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
52 #51 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
53 #52 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
54 #53 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
55 #54 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
56 #55 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
57 #56 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
58 #57 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
59 #58 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
60 #59 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
61 #60 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
62 #61 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
63 #62 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
64 #63 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
65 #64 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
66 #65 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
67 #66 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
68 #67 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
69 #68 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
70 #69 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
71 #70 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
72 #71 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
73 #72 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
74 #73 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
75 #74 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
76 #75 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
77 #76 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
78 #77 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
79 #78 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
80 #79 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
81 #80 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
82 #81 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-v8]
83 #82 pc 000aed61 /system/lib/libandroid_runtime.so [armeabi-vjava:
84 android.graphics.Bitmap.nativeCopyColorSpace(Native Method)
85 android.graphics.Bitmap.createBitmap(Bitmap.java:872)
86 android.graphics.Bitmap.createScaledBitmap(Bitmap.java:733)
87 android.graphics.drawable.Icon.scaleDownIfNecessary(Icon.java:822)
88 android.graphics.drawable.Icon.scaleDownIfNecessary(Icon.java:841)
89 android.app.Notification.reduceImageSizes(Notification.java:5237)
90 android.app.Notification$Builder.build(Notification.java:5007)
91 android.support.v4.app.NotificationCompatBuilder.buildInternal(NotificationCompatBuilder.java:250)
92 android.support.v4.app.NotificationCompatBuilder.build(NotificationCompatBuilder.java:189)
93 android.support.v4.app.NotificationCompat$Builder.build(NotificationCompat.java:1484)
调用setLargeIcon()
的方法时NotificationCompat.Builder
,在某些操作系统版本为 Android 8.1 和 Android 9.0 的设备上会出现错误。
我发现这Icon.scaleDownIfNecessary()
是Android 8.1首次添加nativeCopyColorSpace()
的新方法,也是Android 8.0首次添加的新方法。
我该如何解决/避免它?
解决方案
推荐阅读
- angular - 如何在日期选择器中更改月份时定义事件?
- qt - 更改为粗体时 QML 计算文本空间
- perl - 带有 curl->perform() 的 Net::Curl::Easy lib 模块在终端上抛出“无法连接到服务器”错误(并导致 perl 脚本退出)
- php - Symfony 5.3 必须定义参数“21”
- android - 如何计算事件值的总和?
- node.js - 如何从 Google Apps 脚本作为 Web 应用程序/移动应用程序的后端(例如到 node.js)?
- javascript - 即使选项卡或窗口在 Safari 中处于非活动状态,如何运行 Javascript?
- javascript - 内容安全策略 (CSP) 是否会在请求发送给服务人员之前应用?
- java - 如何降低此任务的代码复杂性?
- asp.net-web-api - 了解如何将 SAML2 SSO 实施到现有的 .net web api