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

如何让Image Asset Studio生成的通知图标在Firebase中正常显示?

解决Firebase通知图标显示灰白方块的问题

我来帮你搞定这个头疼的问题!你已经用Image Asset Studio生成了规范的白色图标,这步走对了,但还差几个关键配置,咱们一步步来排查:

1. 必须在Manifest中声明默认通知图标

Firebase后台推送的通知(App在后台时)会优先读取Manifest里的默认配置,你需要在<application>标签下添加这两行meta-data:

<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_notification" /> <!-- 替换成你的图标文件名 -->

<!-- 可选:设置图标背景色,让白色图标更显眼 -->
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/your_notification_color" />

注意:your_notification_color需要在colors.xml里提前定义,比如<color name="your_notification_color">#FF2196F3</color>。

2. 再次确认图标完全符合规范

虽然用了Image Asset Studio,但再核对一遍细节:

  • 图标必须是纯白色,背景完全透明,不能有任何阴影、圆角或其他颜色
  • 各密度文件夹的尺寸要对应:mdpi(24x24px)、hdpi(36x36px)、xhdpi(48x48px)、xxhdpi(72x72px)、xxxhdpi(96x96px)
  • 不要给图标加任何额外装饰,系统会自动处理状态栏显示的样式

3. 区分后台/前台通知的图标设置

  • 后台通知:只要上面的Manifest配置正确,Firebase会自动使用默认图标
  • 前台通知(App在前台时自己构建的通知):必须在代码里显式设置小图标:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, YOUR_CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification) // 这里指定你的通知图标
        .setContentTitle("通知标题")
        .setContentText("通知内容")
        .setColor(getResources().getColor(R.color.your_notification_color)); // 可选,匹配背景色

⚠️ 一定要用setSmallIcon(),状态栏显示的是小图标,setLargeIcon()是通知展开后的大图标。

4. 清除缓存并重新安装App

旧的图标缓存可能会导致新图标不生效,建议:

  • 完全卸载当前App
  • 重启手机(或清理系统缓存)
  • 重新安装最新版本的App后再测试通知

5. 检查Firebase控制台的设置

如果你在Firebase控制台手动发送测试通知,不要在「通知图标」字段上传其他图标,直接留空即可,让系统优先使用你本地Manifest配置的默认图标,避免冲突。

按照这些步骤操作后,应该就能看到正常显示的白色通知图标了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:51:26