HarmonyOS鸿蒙Next中Flutter运行会修改oh-package.json5三方依赖指向本地缓存
HarmonyOS鸿蒙Next中Flutter运行会修改oh-package.json5三方依赖指向本地缓存
flutter运行之前oh-package.json5的override为:
且DevEco-Studio可以正常运行,但是在flutter端运行之后,oh-package.json5中overrride会自动覆盖成电脑本地缓存地址,并报错:
您好,为了更快速解决您的问题,并且吸引更多用户一同参与您问题的解答与讨论,建议您补全如下信息:
补全版本信息(如:开发工具、手机系统/api语言版本信息),让参与用户更精准定位您的问题;
更多提问技巧,请参考:《提问小技巧:让解答更高效》
更多关于HarmonyOS鸿蒙Next中Flutter运行会修改oh-package.json5三方依赖指向本地缓存的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在HarmonyOS Next中,Flutter运行时会自动修改oh-package.json5文件,将三方依赖指向本地缓存路径。这是由于鸿蒙的包管理机制要求依赖必须本地化存储。当Flutter项目首次运行时,系统会在项目目录下生成.ohpm_cache文件夹存放依赖包,并在oh-package.json5中更新路径指向该缓存。这种设计是鸿蒙与Flutter集成的特定实现方式,确保依赖包能正确加载。修改后的路径格式通常为"file:…/.ohpm_cache/[包名]"。
这个问题是由于Flutter工具链在运行时会自动覆盖oh-package.json5中的依赖配置,将其指向本地缓存路径。这是Flutter包管理的默认行为,但在HarmonyOS Next环境下会导致DevEco Studio无法正确解析依赖。
解决方案:
- 在项目根目录创建或修改.flutter_settings文件,添加以下配置:
{
"update-packages": false
}
- 或者可以在运行Flutter命令时加上–no-pub参数,例如:
flutter run --no-pub
- 如果已经发生修改,可以手动将oh-package.json5恢复为原始配置,然后添加.gitignore规则防止再次被修改。
这个问题本质上是Flutter和HarmonyOS包管理机制之间的差异导致的,需要暂时通过上述配置来规避。