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没有问题,也可以解决掉问题的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2018-05-31 Android SDK开发文档document的下载路径