android开发Bad notification posted from package com.suyf.test: Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.suyf.test id=0x7f0820dd) visible user=0 )解决方法

android开发android.app.RemoteServiceException: Bad notification posted from package com.suyf.test: Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.suyf.test id=0x7f0820dd) visible user=0 )解决方法

问题描述:

这个问题出现的场景是推送时弹出通知栏Notification,而Notification设置了setSmallIcon(R.drawable.push),系统创建通知栏图标时创建StatusBarIcon类失败,失败原因看起来和icon图标资源有关。

问题原因:

原因就是R.drawable.push这张图片有问题,然后我们试了使用val drawable = getDrawable(R.drawable.push)测试一下这张图片返回的drawable 果然是null的(因为经过源代码分析,getDrawable返回null会导致创建StatusBarIcon失败的)。具体原因就是我们项目使用的这张图片是webp的,小部分手机通知栏图标不支持webp格式。

解决方法:

首先根据0x7f0820dd这个id找到对应的图片。确认因为项目使用了booster在构建时自动从png等格式图片转为webp格式了,所以在gradle.properties文件添加booster.task.compression.cwebp.ignores=drawable/push即可,多个文件逗号分开,支持*通配符匹配。如果你遇到同样的问题,而不是webp的原因,主要你使用getDrawable方法确认这张图片不返回null没有问题,也可以解决掉问题的。

posted @   yongfengnice  阅读(515)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2018-05-31 Android SDK开发文档document的下载路径
点击右上角即可分享
微信分享提示