HarmonyOS鸿蒙Next中Flutter tips如何更改Flutter应用的启动图标
HarmonyOS鸿蒙Next中Flutter tips如何更改Flutter应用的启动图标
一、先明确前置准备
- 准备一张高清原始图标图片:
- 格式:
png格式(推荐),透明背景(避免适配后出现多余边框)。 - 尺寸:建议 1024×1024 像素(高分辨率,工具可向下生成各尺寸适配图标,保证清晰度)。
- 命名:例如
app_icon.png,存放于项目根目录(方便查找,非强制)。
- 格式:
- 确认 Flutter 项目结构:确保项目包含
android/和ios/目录(创建项目时默认生成,若缺失可通过flutter create .补全)。
二、方案一:工具自动生成(推荐,高效便捷)
使用 flutter_launcher_icons 第三方库,一键生成 Android/iOS 所有尺寸的启动图标,无需手动修改原生目录,是开发中的最优解。
步骤 1:添加依赖
在项目根目录的 pubspec.yaml 文件中,添加 flutter_launcher_icons 依赖(分为 dependencies 之外的「开发依赖」,仅用于构建阶段):

步骤 2:执行命令生成图标
打开终端,进入项目根目录,执行以下命令(先获取依赖,再生成图标):

等待命令执行完成,终端提示 ✓ Successfully generated launcher icons 即表示生成成功。
步骤 3:验证效果
- Android 端:重新运行项目(
flutter run),或直接打开android/app/src/main/res/目录,可看到各分辨率文件夹(mipmap-hdpi/mipmap-xhdpi等)下已生成新的ic_launcher.png图标。 - iOS 端:打开
ios/Runner/Assets.xcassets/AppIcon.appiconset/目录,可看到各尺寸的图标已生成;也可通过 Xcode 打开ios/Runner.xcworkspace,查看Assets.xcassets中的AppIcon已更新。 - 运行项目到模拟器 / 真机,即可看到应用启动图标已更新。
三、方案二:手动修改(适用于特殊定制场景)
若需要对某一端的图标进行特殊定制(如 Android 自适应图标、iOS 特定尺寸图标),可采用手动修改方案,分别处理 Android 和 iOS 端。
部分 1:手动修改 Android 端启动图标
Android 启动图标分为「普通图标」和「自适应图标(Android 8.0+)」,步骤如下:
- 准备 Android 所需图标尺寸:
- 普通图标(
mipmap目录):需生成 4 种分辨率:hdpi(72×72)、xhdpi(96×96)、xxhdpi(144×144)、xxxhdpi(192×192)。 - 自适应图标(
mipmap目录):前景图(无背景,尺寸同上)+ 背景图(纯色 / 渐变,尺寸同上)。
- 普通图标(
- 替换普通图标:
- 打开项目
android/app/src/main/res/目录,找到各mipmap-xxx文件夹。 - 将对应分辨率的图标重命名为
ic_launcher.png,替换各文件夹下的原有文件。
- 打开项目
- 定制自适应图标(可选):
- 将前景图重命名为
ic_launcher_foreground.png,背景图重命名为ic_launcher_background.png,替换各mipmap-xxx文件夹下的原有文件。 - 打开
android/app/src/main/AndroidManifest.xml,确保application标签的android:icon指向@mipmap/ic_launcher:
- 将前景图重命名为

- 清理 Android 构建缓存(可选,避免缓存导致图标不更新):
- flutter clean
部分 2:手动修改 iOS 端启动图标
- 准备 iOS 所需图标尺寸:
- iOS 启动图标需要多种尺寸(从 29×29 到 1024×1024),可通过图标生成工具(如 App Icon Generator)生成完整的
AppIcon.appiconset文件夹。
- iOS 启动图标需要多种尺寸(从 29×29 到 1024×1024),可通过图标生成工具(如 App Icon Generator)生成完整的
- 替换图标文件:
- 打开项目
ios/Runner/Assets.xcassets/目录,找到AppIcon.appiconset文件夹。 - 删除文件夹内原有所有
png文件和Contents.json文件。 - 将生成的
AppIcon.appiconset文件夹中的所有文件,复制到该目录下。
- 打开项目
- 验证配置(可选):
- 用 Xcode 打开
ios/Runner.xcworkspace,选中Runner项目 →Assets.xcassets→AppIcon,可看到各尺寸图标已填充,无红色缺失标记即表示正常。
- 用 Xcode 打开
- 清理 iOS 构建缓存(可选):
- flutter clean
四、常见问题与注意事项
- 1、图标生成后不生效:
- 原因:构建缓存未清理,或模拟器 / 真机缓存了旧图标。
- 解决方案:① 执行
flutter clean清理项目缓存;② 卸载设备上的旧应用,重新运行flutter run;③ iOS 端可在 Xcode 中执行「Clean Build Folder」(Shift+Command+K)。
- 2、iOS 图标出现黑色边框:
- 原因:原始图标有透明背景,iOS 部分设备会自动填充黑色背景。
- 解决方案:① 生成图标时设置
ios_remove_alpha: true(工具方案);② 准备带纯色背景的原始图标,手动替换。
- 3、Android 自适应图标显示异常:
- 原因:前景图尺寸不合适,或背景图格式错误。
- 解决方案:确保前景图为透明背景,尺寸符合各分辨率要求,背景图为纯色或渐变图,无复杂纹理。
- 4、工具版本兼容问题:
- 若
flutter_launcher_icons命令执行失败,可尝试降低 / 升级依赖版本,或查看官方 GitHub 仓库的 issue 解决方案。 -
总结
- 1、日常开发优先选择
flutter_launcher_icons工具方案,高效便捷,能自动适配 Android/iOS 所有尺寸, - 避免手动操作遗漏。
- 2、核心步骤:准备 1024×1024 png 原始图标 → 配置
pubspec.yaml→ 执行flutter pub run flutter_launcher_icons→ 清理缓存验证效果。 - 3、特殊定制场景(如自适应图标、特定尺寸修改)可采用手动修改方案,分别处理 Android 的
mipmap目录和iOS 的AppIcon.appiconset目录。 - 4、图标不生效时,优先清理项目缓存和设备上的旧应用,再排查图标格式和配置问题。
- 若
更多关于HarmonyOS鸿蒙Next中Flutter tips如何更改Flutter应用的启动图标的实战教程也可以访问 https://www.itying.com/category-92-b0.html
在HarmonyOS Next中更改Flutter应用的启动图标,需在项目的entry/src/main/resources/base/media目录下替换图标文件。图标需符合HarmonyOS规范,包括不同像素密度的版本(如icon.png、icon@2x.png等)。修改后重新编译构建应用即可生效。
更多关于HarmonyOS鸿蒙Next中Flutter tips如何更改Flutter应用的启动图标的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
针对HarmonyOS Next中Flutter应用启动图标的更改,您分享的通用Flutter方案(使用flutter_launcher_icons或手动替换原生资源)在原理上是正确的,因为Flutter本身并不直接处理应用图标,它依赖于底层平台(Android/iOS)的配置。
然而,需要特别指出的是,在HarmonyOS Next平台上,上述方法需要针对HarmonyOS的工程结构进行适配。HarmonyOS应用有自己独立的图标资源配置方式和路径,与Android(mipmap)和iOS(Assets.xcassets)不同。
以下是针对HarmonyOS Next项目的关键补充步骤:
核心调整:配置HarmonyOS原生侧图标
Flutter for HarmonyOS项目在harmony目录下包含完整的HarmonyOS原生工程。您需要在此处替换图标资源。
-
定位图标资源目录: 图标资源位于:
你的项目/harmony/entry/src/main/resources/base/media/。 您会看到预置的icon.png等图标文件。 -
替换图标文件:
- 根据HarmonyOS的图标规范,准备相应尺寸的PNG图标文件(例如
icon.png)。 - 直接替换
harmony/entry/src/main/resources/base/media/目录下的对应图标文件。您可能需要替换多个不同分辨率的文件(例如icon.png,icon@2x.png等,具体取决于项目模板的配置)。
- 根据HarmonyOS的图标规范,准备相应尺寸的PNG图标文件(例如
-
清理与重建: 替换图标后,需要执行清理和重新构建以确保生效:
flutter clean cd harmony hvigor clean然后重新运行项目(
flutter run)或在DevEco Studio中重新构建HarmonyOS工程。
总结与对比
- 通用原理:您的帖子准确描述了Flutter应用换标的本质——替换各平台原生资源。
- HarmonyOS Next适配:在HarmonyOS Next项目中,操作平台从Android/iOS变为HarmonyOS。因此,需要操作的目标目录是
harmony/entry/src/main/resources/下的相关资源,而非android/或ios/目录。 - 自动化工具:目前社区常见的
flutter_launcher_icons插件主要面向Android/iOS,可能尚未直接支持HarmonyOS图标资源的自动生成。因此,手动替换HarmonyOS原生资源目录下的图标文件是目前明确有效的方法。
您的帖子内容详尽,为Android/iOS平台提供了优秀指南。对于HarmonyOS Next开发者,只需将操作目标从android/app/src/main/res/和ios/Runner/Assets.xcassets/切换至harmony/entry/src/main/resources/即可应用相同的换标逻辑。

