HarmonyOS鸿蒙Next求助:报错hvigor ERROR: Failed :entry:default@SignHap... ERROR: 11012006 File IO failed

HarmonyOS鸿蒙Next求助:报错hvigor ERROR: Failed :entry:default@SignHap… ERROR: 11012006 File IO failed flutter版本 以及鸿蒙SDK版本如下:

cke_202.png

cke_2585.png

报错信息:

执行 flutter build hap --target-platform ohos-arm64 --debug 或者 flutter build hap 则报错:

cke_4464.png

在DevEcoStudio里面执行build hap 成功,直接在DevEcoStudio运行是可以运行到手机上的,但是flutter修改了代码则不生效。

cke_5069.png

目录如下:

cke_21068.png


更多关于HarmonyOS鸿蒙Next求助:报错hvigor ERROR: Failed :entry:default@SignHap... ERROR: 11012006 File IO failed的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

您好,您的问题是hvigor工具报错,您可以使用解决方案步骤排查:

【背景知识】

  • 在HarmonyOS中使用Flutter开发时,Hvigor用于编译和打包HarmonyOS应用,它支持构建的多任务管理,同时也允许开发者通过插件扩展构建逻辑,还支持不同设备类型和运行时环境。
  • 在编译和打包HarmonyOS的Flutter项目工程中,会遇到各种编译构建问题,需要针对不同的问题场景进行分析。

【修改建议】

  • 构建缓存问题:清除HarmonyOS编译中间产物来重新构建,即在ohos目录下执行一下hvigorw clean或者手动删除中间产物。

    Flutter项目构建过程中的注意事项:

    必要时可清理构建产物,在ohos目录下执行"hvigorw clean"或者使用DevEco的"Build->Clean"或者手动清理(橙色目录属于中间产物,可删除)。

  • 签名过期问题:删除与之相关的".cer",".p7b",".p12"文件,重新签名。

  • 使用命令行,这会输出更详细的错误堆栈,帮助你定位是哪个文件 IO 失败。

    hvigorw assembleHap -p product-default -p buildMode-debug --no-daemon --stacktrace
    

您也可以提供您的entry/build-profile.json5和hvigorw.log文件,方便帮您进一步定位

更多关于HarmonyOS鸿蒙Next求助:报错hvigor ERROR: Failed :entry:default@SignHap... ERROR: 11012006 File IO failed的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


该错误代码11012006表示HAP签名过程中文件读写异常。可能原因包括:项目路径包含中文字符或特殊符号;构建目录文件被占用或权限不足;签名配置文件格式错误。检查hvigorfile.ts中signingConfigs配置项的证书路径是否正确,确保hap包输出目录未被其他进程占用。清理构建缓存(删除build目录)后重新编译可解决多数文件锁冲突问题。

从报错信息来看,这个文件IO错误(11012006)通常与签名文件路径或权限问题有关。以下是几个排查方向:

  1. 检查签名配置文件:确保在 build-profile.json5 中配置的 signature 路径正确,且 .p7b.cer 文件存在且未被占用。

  2. 清理构建缓存:尝试执行 flutter clean 后重新构建,排除缓存导致的文件冲突。

  3. 检查文件权限:确认项目目录及签名文件未被其他进程占用,且具有读写权限。

  4. 验证Flutter与HarmonyOS环境兼容性:部分Flutter版本与鸿蒙SDK存在兼容性问题,可尝试使用稳定版本的Flutter及匹配的HarmonyOS SDK。

若在DevEco Studio中构建成功但Flutter代码修改不生效,可能是Flutter构建未正确同步到HAP。检查 flutter build hap 是否指向正确的模块路径,并确认 ohos 目录下的资源与代码已更新。

回到顶部