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

Flutter Android多Product Flavors下通知及设置图标异常问题

Flutter多Flavor应用图标不生效问题排查与解决
  • 检查Flavor资源目录结构与命名
    从你的文件夹结构来看,TCD目录下的res文件夹必须和main目录的结构完全对应:

    • 确保TCD/res下包含mipmap-hdpi、mipmap-mdpi、mipmap-xhdpi等所有分辨率子文件夹;
    • 每个分辨率文件夹里的图标文件名必须和main目录里的完全一致(比如ic_launcher.png、ic_launcher_round.png),系统只会替换同名的资源文件,文件名不匹配就会用默认的ABC图标。
  • 确认build.gradle的Flavor配置完整性
    打开android/app/build.gradle,核对Flavor配置:

    android {
        ...
        flavorDimensions "default"
        productFlavors {
            abc {
                dimension "default"
                applicationId "com.example.abc"
                resValue "string", "app_name", "ABC"
            }
            tcd {
                dimension "default"
                applicationId "com.example.tcd" // 必须和ABC的applicationId不同
                resValue "string", "app_name", "TCD"
            }
        }
    }
    

    重点是两个flavor的applicationId必须唯一,否则不仅图标会混淆,两个应用甚至无法同时安装。

  • 推送通知图标未针对Flavor配置
    推送通知显示ABC图标,大概率是通知图标没做Flavor适配:

    • 在TCD/res的对应分辨率文件夹里添加通知图标(比如ic_notification.png),文件名要和main目录里的通知图标一致;
    • 检查推送的payload配置,有没有硬编码指定ABC的图标名称,要改成通用的图标名让系统自动匹配Flavor资源;
    • 若用FCM,确保AndroidManifest.xml里的默认通知图标配置没有硬编码,如下:
      <meta-data
          android:name="com.google.firebase.messaging.default_notification_icon"
          android:resource="@mipmap/ic_notification" />
      
  • 清理缓存后重新构建
    资源不生效很多时候是缓存搞的鬼,执行以下命令彻底清理再重新构建:

    flutter clean
    flutter build apk --flavor tcd
    # 测试的话用这个命令
    flutter run --flavor tcd
    
  • 解决设置中图标未更新的问题
    如果安装后手机设置里还是显示ABC图标:

    • 先彻底卸载手机上的ABC和TCD应用,再重新安装TCD版本;
    • 重启手机,清除系统的应用信息缓存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:42:26