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

Flutter Android APK中通知图标变为1x1像素问题咨询

解决Flutter打包APK后通知图标变为1x1像素的问题

核心原因

Android通知图标要求仅使用透明背景的单色(白色)图标,如果你的图标不符合这个规范,打包时aapt会错误处理资源,导致图标被压缩成1x1像素。仅关闭PNG压缩不足以解决问题,还需确保图标目录、格式和配置完全符合Android规范。

具体解决步骤

  • 重新制作合规的通知图标:
    制作一张透明背景、白色前景的基础图标(尺寸建议24x24),再生成对应不同dpi的版本:

    • mdpi: 24x24
    • hdpi: 36x36
    • xhdpi: 48x48
    • xxhdpi: 72x72
    • xxxhdpi: 96x96
      将这些图标分别放入android/app/src/main/res/drawable-mdpi/、drawable-hdpi/等对应dpi目录,保持统一命名(比如notification_icon.png)。
  • 配置AndroidManifest.xml:
    在android/app/src/main/AndroidManifest.xml的<application>标签中明确指定通知图标:

    <application
        ...
        android:icon="@mipmap/ic_launcher"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:notificationIcon="@drawable/notification_icon" <!-- 新增该行 -->
        ...>
    
  • 完善gradle资源压缩配置:
    在android/app/build.gradle的android块中补充完整的禁用压缩配置:

    android {
        ...
        aaptOptions {
            cruncherEnabled = false
            useNewCruncher = false // 适配新版aapt工具
        }
        buildTypes {
            release {
                ...
                crunchPngs false
            }
        }
    }
    
  • 清理缓存后重新打包:
    执行命令清理旧构建缓存,再重新生成release包:

    flutter clean
    flutter build apk --release
    

额外注意事项

  • 不要仅将图标放在drawable根目录,Android会根据设备dpi自动匹配对应目录的图标,单一目录易引发适配问题。
  • 禁止使用彩色或不透明背景的图标,这类图标会被Android系统强制处理,大概率导致显示异常。

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

相关产品推荐
方舟 Agent Plan

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

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