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

Flutter Firebase Messaging推送通知显示白方块而非图标问题求助

可能的问题及解决方向
  • 图标不符合通知规范:Android通知图标要求必须是透明背景的单色(仅白色)图标,如果生成的图标带有彩色或不透明背景,系统会自动将其转为白方块。重新检查AndroidAssetStudio生成的图标,确保只保留alpha通道(透明背景+白色前景),没有额外颜色。

  • 资源未按屏幕密度分类放置:仅将图标放在drawable文件夹可能导致系统缩放异常。AndroidAssetStudio会生成对应不同密度的图标包(mdpi/hdpi/xhdpi/xxhdpi/xxxhdpi),需要将对应尺寸的图标分别放到android/app/src/main/res/drawable-xxx这类密度文件夹中,而不是只放默认drawable目录。

  • Manifest配置位置错误:<meta-data>标签必须放在<application>标签内部,不能嵌套在<activity>或其他标签中。正确的配置结构如下:

<application
    android:name=".MyApplication"
    android:icon="@mipmap/ic_launcher"
    ...>

    <!-- 其他组件配置 -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/notification_icon" />
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/colorAccent" />

</application>
  • 项目缓存或构建问题:旧的资源缓存可能导致新图标不生效。执行./gradlew clean命令清理缓存,再通过Android Studio的Build -> Rebuild Project重新构建项目,之后再测试推送。

  • 推送Payload覆盖了默认图标:如果推送消息的payload中指定了icon字段(比如Firebase控制台发送时设置了自定义图标,或者后端接口传了"icon"参数),会优先使用该图标而非Manifest中的默认配置。检查推送的payload内容,若存在该字段,要么移除它,要么确保指定的图标符合通知规范。

  • 资源引用或文件名错误:确认图标文件名是notification_icon.png(Android资源文件名大小写敏感,注意不要拼写错误),Manifest中@drawable/notification_icon的引用不带.png后缀,且与文件名完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 04:01:02