使用flutter_launcher_icons生成图标时遇RangeError索引越界问题
Flutter Launcher Icons 报 RangeError(index): Index out of range 问题解决
问题场景
执行dart run flutter_launcher_icons命令生成应用图标时,出现如下报错:
dart run flutter_launcher_icons Building package executable... (2.0s) Built flutter_launcher_icons:flutter_launcher_icons. ════════════════════════════════════════════ FLUTTER LAUNCHER ICONS (v0.13.1) ════════════════════════════════════════════ • Creating default icons Android • Adding a new Android launcher icon ✕ Could not generate launcher icons RangeError (index): Index out of range: index should be less than 9216: 9252
pubspec.yaml中相关配置:
flutter_launcher_icons: android: 'launcher_icon' ios: true image_path: 'assets/images/shovel-brown.png'
已尝试操作:更换不同格式(png/jpg)、大小(1KB-12KB)、无透明层的图片;降级flutter_launcher_icons版本;升级Flutter及Android Studio依赖和工具,问题未解决。
可行解决方案
确保原始图标为标准正方形
flutter_launcher_icons要求原始图标必须是正方形,推荐使用1024x1024像素的图片。非正方形图片会导致内部像素解析时出现索引越界,即使文件大小在范围内也会触发报错。升级flutter_launcher_icons到最新稳定版
0.13.1版本存在已知的图片解析bug,升级到0.14.1及以上版本可修复该问题。修改pubspec.yaml中的依赖版本后执行flutter pub get,再重新运行生成命令。清理Flutter缓存后重试
执行以下命令清理缓存,避免缓存文件干扰:flutter clean flutter pub get之后再次运行
dart run flutter_launcher_icons。使用Android Studio内置工具手动生成图标
如果插件问题无法解决,可绕过插件直接生成:- 打开Project视图下的android文件夹,右键点击
res文件夹 → New → Image Asset - 选择Launcher Icons(Adaptive and Legacy),导入图标图片后按向导完成生成
- iOS端可通过Xcode的Assets.xcassets手动添加对应尺寸的图标
- 打开Project视图下的android文件夹,右键点击
内容的提问来源于stack exchange,提问作者Jiří Praus
相关产品推荐
相关产品推荐

