You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter接入Firebase Cloud Messaging后Android通知图标显示为白方块如何解决

安卓端FCM通知图标显示白块解决方案
  • 调整图标存放路径:通知图标属于通用drawable资源,不要放在mipmap目录下,将Android Asset Studio导出的所有对应分辨率的图标文件放入android/app/src/main/res/drawable-xxx对应分辨率文件夹中,同步修改Manifest中的配置为@drawable/ic_stat_logopush,同时确认资源文件名和配置的名称完全一致,安卓资源名称大小写敏感,不允许出现大写字母、特殊符号。
  • 验证图标合规性:安卓5.0及以上系统对通知图标有强制要求,必须是「透明背景+仅白色Alpha通道内容」的设计,所有非透明区域都会被系统强制渲染为纯白色,如果你的图标存在不透明的背景层,就会完全显示为白块。你可以用图片编辑工具打开图标素材,确认除了Logo内容外其余区域完全透明。
  • 检查Manifest配置位置:你添加的通知图标meta-data必须放在AndroidManifest.xml的<application>标签内部,不能嵌套在<activity>、<service>等其他子标签下,否则配置不会生效。
  • 补充通知图标背景色配置(可选):你可以额外添加配置指定通知图标对应的背景色,优化显示效果:
    1. 先在android/app/src/main/res/values/colors.xml中添加自定义颜色(没有该文件就新建):
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <color name="notification_icon_bg">#FF2196F3</color> <!-- 替换为你APP的主色即可 -->
    </resources>
    
    1. 在Manifest的<application>标签内添加颜色配置:
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/notification_icon_bg" />
    
  • 清理缓存重试:修改完成后完全卸载设备上的旧应用,重启测试设备后重新安装运行,避免旧的资源缓存导致新配置不生效。
  • 检查Firebase控制台参数:通过Firebase控制台发送测试通知时,不要在「高级选项」的「通知图标」字段填写内容,留空就会默认读取Manifest的配置,避免填写错误的资源名导致异常。

内容的提问来源于stack exchange,提问作者mvasco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:57:03