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

Flutter Android通知图标变灰色方块问题求助(flutter_local_notifications)

解决三星Galaxy S10+发布模式下flutter_local_notifications通知图标变灰方块的问题

我来帮你搞定这个头疼的问题!结合你描述的情况(调试模式正常、彩色图标能显示、单色图标在发布模式变灰),大概率是资源配置或发布模式的资源处理出了问题,下面是针对性的解决步骤:

一、先确认通知图标是否完全符合Android要求

Android 5.0+对通知图标有严格要求:

  • 必须是纯白色前景、完全透明背景的单色图标,不能有任何阴影、渐变或其他颜色(哪怕是淡灰色都不行)
  • 要覆盖所有分辨率:mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi,每个分辨率对应不同尺寸的图标

你用Android Asset Studio生成时,要确保选的是「Notification Icons」类型,生成后下载的zip包会包含所有分辨率的文件夹,直接用这些图标就对了。

二、检查图标放置的目录

很多人会不小心把图标放到android/app/src/debug/res目录下,调试模式能读取到,但发布模式只会加载android/app/src/main/res下的资源!

  • 把所有分辨率的通知图标(比如ic_notification.png)放到android/app/src/main/res/drawable-mdpi、drawable-hdpi等对应文件夹里
  • 确保图标文件名一致,且没有拼写错误

三、配置Flutter Local Notifications和AndroidManifest

  1. 初始化插件时指定图标:
    在初始化FlutterLocalNotificationsPlugin时,明确设置通知图标名称(不带.png后缀):

    const AndroidInitializationSettings initializationSettingsAndroid =
        AndroidInitializationSettings('ic_notification');
    
  2. 在AndroidManifest.xml中设置默认通知图标:
    打开android/app/src/main/AndroidManifest.xml,在<application>标签内添加:

    <!-- 针对本地通知的默认图标 -->
    <meta-data
        android:name="io.flutter.plugins.localnotification.default_notification_icon"
        android:resource="@drawable/ic_notification" />
    <!-- 如果同时用了FCM,也加上这个 -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/ic_notification" />
    

四、防止发布模式下资源被压缩

Android发布模式默认会启用资源压缩(shrinkResources),可能误删通知图标,需要做以下配置:
打开android/app/build.gradle,在buildTypes的release块中:

release {
    // 如果不需要资源压缩,直接关闭
    shrinkResources false
    minifyEnabled true // 如果你需要混淆,这个可以保留
    // 如果必须开启资源压缩,就添加keep规则:
    // 在res/raw目录下创建keep.xml,内容如下:
    // <resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@drawable/ic_notification" />
}

五、清理缓存并重新构建发布包

最后一步很关键,避免旧资源缓存干扰:

  1. 执行flutter clean清理项目缓存
  2. 重新构建发布包:flutter build apk --release(或者flutter build appbundle)

按照以上步骤操作后,三星Galaxy S10+的发布模式应该就能正常显示纯白色通知图标了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 12:07:46