08-Flutter鸿蒙资源与依赖管理:图片、字体、pubspec和oh-package配置
08. Flutter鸿蒙资源与依赖管理图片、字体、pubspec和oh-package配置Flutter 鸿蒙项目里同时存在 Flutter 资源体系和鸿蒙工程资源体系。图片、字体、Dart 包通常走pubspec.yaml鸿蒙原生侧依赖和资源则在ohos工程中处理。两套体系分清楚资源加载和依赖升级会稳定很多。Flutter 资源目录assets ├─ images │ ├─ banner.png │ └─ avatar.png └─ fonts └─ HarmonyText.ttf资源目录放项目根目录路径尽量使用英文和小写。图片命名不要包含空格避免不同平台解析路径时出现问题。声明图片flutter:uses-material-design:trueassets:-assets/images/使用Image.asset(assets/images/banner.png,width:double.infinity,height:180,fit:BoxFit.cover,)如果运行时报Unable to load asset优先检查pubspec.yaml缩进、资源路径、文件名大小写然后执行flutter pub get。声明字体flutter:fonts:-family:HarmonyTextfonts:-asset:assets/fonts/HarmonyText.ttf使用constText(Flutter 鸿蒙项目,style:TextStyle(fontFamily:HarmonyText,fontSize:22,fontWeight:FontWeight.w600,),)Flutter 依赖添加 Dart 包dependencies:flutter:sdk:flutterhttp:^1.2.2执行flutter pub get查看依赖树flutter pub deps鸿蒙侧依赖边界oh-package.json5属于鸿蒙侧依赖体系。后续如果写 ArkTS 插件、接原生模块、嵌入原生组件就会遇到鸿蒙侧依赖配置。不要把鸿蒙包写进pubspec.yaml也不要把 Dart 包写进oh-package.json5。资源或依赖变更后的通用处理flutter clean flutter pub get flutter run--debug资源缓存问题图片或字体已经添加但页面仍然显示旧内容时通常是缓存或声明没有刷新。可以按顺序处理flutter pub get flutter clean flutter run--debug如果是图片路径问题控制台一般会出现Unable to load asset。这时先检查文件是否真实存在再检查pubspec.yaml缩进不要一上来就怀疑鸿蒙侧配置。三方包兼容性不是所有 Flutter 三方包都已经适配 OpenHarmony。选择依赖时要看它是否包含 ohos 平台实现尤其是涉及相机、定位、蓝牙、地图、播放器、WebView、传感器等原生能力的包。排查依赖来源flutter pub deps flutter pub outdated如果某个包在 Android 或 iOS 正常但鸿蒙构建失败优先检查该包是否有ohos目录或对应 OpenHarmony 适配版本。pubspec 缩进检查pubspec.yaml对缩进敏感。资源不生效时先看缩进flutter:uses-material-design:trueassets:-assets/images/fonts:-family:HarmonyTextfonts:-asset:assets/fonts/HarmonyText.ttfassets和fonts都在flutter下面不能和dependencies平级写错。依赖升级策略升级三方包前先查看当前依赖flutter pub outdated flutter pub deps升级后执行flutter clean flutter pub get flutter run--debug如果某个包还没有适配 OpenHarmony可能在普通 Flutter 平台可用但鸿蒙构建失败。遇到这类问题要优先查该包是否提供 ohos 平台实现。升级后执行flutter clean flutter pub get flutter run--debug如果某个包还没有适配 OpenHarmony可能在普通 Flutter 平台可用但鸿蒙构建失败。遇到这类问题要优先查该包是否提供 ohos 平台实现。