HarmonyOS鸿蒙Next中直接依赖原项目没问题,把项目编译出来成har包依赖编译报错

HarmonyOS鸿蒙Next中直接依赖原项目没问题,把项目编译出来成har包依赖编译报错

> hvigor ERROR: Failed :entry:default@CompileArkTS...

> hvigor ERROR: ArkTS:ERROR Failed to execute es2abc.

Error Message: The size of programs is expected to be 2388, but is 2387
3 回复

你好,可以尝试如下两种方案。

【问题描述】 项目构建报错:“hvigor ERROR: ArkTS:ERROR Failed to execute es2abc.”

【解决方案1】 该问题是在执行es2abc二进制文件时出现错误,具体错误信息可在后续的Error日志中查看。一般可以通过清除缓存的方式解决,参考以下步骤处理:

  1. Build->Clean Project;
  2. 在控制台执行ohpm clean;
  3. 再执行ohpm install;
  4. 再Build->Build Hap(s)/APP(s);
  5. 最后File->Invalidata Caches,并勾选三个Optional,选择清除并重启DevEco Studio。

如果按照上述步骤未解决问题,请卸载重装DevEco Studio。

【解决方案2】 查看工程和har包的build-profile.json5文件中的‘compatibleSdkVersionStage’字段,选择以下任意一种解决方案:

  • 将工程中的‘compatibleSdkVersionStage’字段调整至大于或者等于har包中的版本。
  • 删除字节har和工程中的‘compatibleSdkVersionStage’字段。

更多关于HarmonyOS鸿蒙Next中直接依赖原项目没问题,把项目编译出来成har包依赖编译报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙Next中直接依赖原项目正常但编译成har包报错,通常是由于har包的资源或依赖配置问题导致。检查以下方面:

  1. 确保har包的oh-package.json5配置正确,包含所有必需的依赖项
  2. 确认har包中的资源文件路径保持与源码一致
  3. 检查模块的export和import语句是否符合规范
  4. 查看编译日志中的具体错误信息,定位缺失的组件或接口,

这个错误是由于HAR包编译时ArkTS编译器对程序大小的严格校验导致的。具体分析:

  1. 直接依赖项目可以编译是因为源码编译时校验机制不同
  2. 生成HAR包后,编译器会对生成的字节码大小进行严格校验
  3. 报错显示预期大小2388但实际2387,说明存在1字节的差异

常见解决方案:

  1. 检查项目中的资源文件是否有变动
  2. 清理构建缓存后重新编译(hvigor clean)
  3. 确认依赖的SDK版本是否一致
  4. 检查是否有条件编译导致的代码差异

这种大小校验错误通常是由于编译环境或依赖版本不一致导致的细微差异。建议先确保开发环境配置完全一致后再尝试重新构建。

回到顶部