Expo独立Android应用通知图标无法显示 求排查指导
排查Expo Android推送通知图标显示异常的问题
针对你遇到的Expo独立Android应用推送通知图标显示为方块的问题,结合你已经尝试的操作,我整理了几个关键排查方向:
1. 严格遵循Android通知图标规范
Android系统对通知图标有硬性要求,这是最容易踩坑的点:
- 必须是纯透明背景的单色(仅白色/透明)图标,灰度渐变或半透明都会导致系统渲染异常,显示为方块
- 图标不能包含任何彩色元素,系统会根据状态栏的主题(深色/浅色)自动反转图标颜色
- 建议使用矢量SVG文件生成符合要求的PNG,确保边缘清晰,没有模糊或灰度过渡
2. 检查图标路径与资源有效性
- 确认
app.json中的图标路径完全正确,比如./app_assets/icons/icon-48-gs.png是否存在于项目对应目录,Android对文件路径的大小写是敏感的,文件名或文件夹名大小写不匹配会导致资源加载失败 - 尝试将图标移动到项目根目录的
assets文件夹下,简化路径为./assets/notification-icon.png,减少路径引用出错的概率
3. 清理缓存并重新构建独立包
Expo的本地调试缓存和独立包的资源打包逻辑有差异,修改图标后可能需要:
- 运行
expo r -c清理本地缓存并重启项目 - 使用
eas build -p android重新构建Android独立安装包,因为调试模式下的资源加载和正式包不一致,很多时候调试时正常但正式包出问题
4. 验证图标本身的正确性
你尝试过多个图标但都无效,建议先验证图标是否符合要求:
- 用图片编辑工具打开图标,确认背景是完全透明的,且图标内容是纯白色(无灰度)
- 可以使用Android Studio的Image Asset Studio生成标准的通知图标,导出后替换到项目中
你的问题回顾
我开发了一款Expo独立Android和iOS应用,目前正在测试Android端推送通知。已在app.json中配置notification字段如下:
"notification":{ "icon": "./app_assets/icons/icon-48-gs.png", "color": "#000000" }
该图标为48×48带透明度的灰度图标,我也尝试过移除color属性,但状态栏和通知中仅显示白/浅灰/黑色方块。在Expo论坛看到有人用96×96图标解决了类似问题,但对我无效。我尝试过不同尺寸和风格的灰度/单色图标,但均未解决问题。
内容的提问来源于stack exchange,提问作者w--
相关产品推荐
相关产品推荐

