Flutter项目Android资源链接失败:@mipmap/ic_launcher未找到问题求助
这问题我之前踩过坑,其实核心就是默认图标资源没有正确生成或者引用路径不匹配,具体可以拆解成这几个常见原因:
未生成默认图标资源:Flutter本身不会自动为Android模块生成全分辨率的ic_launcher图标,需要依赖
flutter_launcher_icons工具来生成。如果你的项目初始化后没运行过flutter pub run flutter_launcher_icons:main命令,也没手动添加过图标资源,那res/mipmap目录里就没有对应的ic_launcher文件,AndroidManifest的引用自然会报错。图标配置或生成过程出错:要是你配置了
flutter_launcher_icons但生成失败——比如pubspec.yaml里的图标源路径写错、图标文件本身不存在,或者生成命令运行时抛出异常,都会导致mipmap目录里没有预期的图标文件。另外,如果生成的图标名字不是ic_launcher(比如配置里自定义了名称),但AndroidManifest里还是引用@mipmap/ic_launcher,也会触发这个错误。Android模块资源结构异常:比如
android/app/src/main/res下缺少mipmap系列目录(mipmap-hdpi、mipmap-mdpi等),或者这些目录的权限有问题(比如设置为只读),导致Gradle编译时无法读取或识别图标资源。还有一种可能是你之前手动删除过mipmap里的ic_launcher文件,之后没重新生成。
可以快速验证一下:直接去android/app/src/main/res目录下检查,看看有没有mipmap开头的文件夹,里面是否存在对应分辨率的ic_launcher.png文件。如果空空如也,那基本就是没生成资源的问题了。
内容的提问来源于stack exchange,提问作者JuniorBOMB

