使用DevEco Studio 5.1.1 Release创建一个 cangjie hybrid ability项目运行点击后报错

使用DevEco Studio 5.1.1 Release创建一个 cangjie hybrid ability项目运行点击后报错 12-14 01:54:20.418   17312-9736    C03f00/ArkCompiler                                    E     [ArkRuntime Log] SyntaxError: the requested module ‘@normalized:Y&&&libark_interop_loader.so&’ does not provide an export name ‘requireCJLib’ which imported by ‘&entry/src/main/ets/pages/Index&’ 12-14 01:54:20.418   17312-9736    C03f00/ArkCompiler                                    E     [ArkRuntime Log]     at anonymous (entry|entry|1.0.0|src/main/ets/pages/Index.ts:62:29)


3 回复

开发者您好,目前仓颉最高只支持DevEco Studio 5.0.5 Release,具体参考链接:版本概览-DevEco Studio-Cangjie Plugin 5.0.13.210 Canary-DevEco Studio-Cangjie Plugin Canary-版本说明 - 华为HarmonyOS开发者。(获取到仓颉开发权限的开发者才能查看链接)所以使用DevEco Studio 5.1.1 Release不支持创建仓颉项目,建议您这边使用DevEco Studio 5.0.5 Release创建仓颉项目吧。


在DevEco Studio 5.1.1 Release中创建Cangjie Hybrid Ability项目后运行报错,常见原因包括:

  1. 项目依赖的SDK版本与DevEco Studio版本不匹配。
  2. 项目配置文件(如build-profile.json5module.json5)中存在语法或配置错误。
  3. 本地Node.js或Ohpm环境未正确安装或版本过低。
  4. 项目所需的Cangjie相关依赖包未能成功下载或安装。

请检查上述配置,确保环境与依赖项符合项目要求。

这个错误表明在加载仓颉(Cangjie)混合能力(Hybrid Ability)项目时,ArkCompiler 在解析模块依赖时遇到了问题。具体来说,错误信息指出模块 @normalized:Y&&&libark_interop_loader.so& 没有提供名为 requireCJLib 的导出项,而该导出项被 entry/src/main/ets/pages/Index 导入。

问题分析:

  1. 仓颉混合能力依赖缺失:仓颉混合能力项目依赖于特定的原生库(如 libark_interop_loader.so)来提供仓颉相关的功能接口(例如 requireCJLib)。错误提示表明这些依赖未正确配置或加载。
  2. DevEco Studio 5.1.1 Release 兼容性问题:DevEco Studio 5.1.1 可能对仓颉混合能力的支持存在配置差异,导致模块导出失败。
  3. 项目构建或运行环境问题:可能是项目依赖未同步、缓存未清理或 SDK 版本不匹配。

解决步骤:

  1. 检查项目配置

    • 确保 build-profile.json5module.json5 中已正确声明仓颉混合能力依赖。例如,检查 "abilities""extensionAbilities" 配置中是否包含仓颉相关设置。
    • 确认 oh-package.json5 中已添加必要的仓颉混合能力包依赖,例如 @ohos/cangjie 或相关库。
  2. 清理和重建项目

    • 在 DevEco Studio 中执行 File > Invalidate Caches and Restart,清理缓存并重启。
    • 删除项目下的 buildnode_modulesoh_modules 目录,然后重新运行 ohpm install 和构建。
  3. 更新 SDK 和工具链

    • 检查 DevEco Studio 的 SDK Manager,确保 HarmonyOS SDK 版本与仓颉混合能力要求匹配(例如 SDK API 11+)。必要时更新到最新版本。
    • 确认 DevEco Studio 5.1.1 Release 已安装所有推荐插件和工具链。
  4. 验证原生库加载

    • 检查 src/main/cpplibs 目录下是否存在 libark_interop_loader.so 或相关原生库文件。如果缺失,需通过 ohpm 或手动添加依赖。
    • 确保 CMakeLists.txtbuild-profile.json5 中正确配置了原生库的链接路径。
  5. 检查代码导入语句

    • src/main/ets/pages/Index.ts 的第 62 行附近,确认导入 requireCJLib 的语句是否正确。例如,应为 import { requireCJLib } from '@ohos/cangjie' 或类似格式。如果路径错误,修正为官方文档提供的模块名。

如果以上步骤无效,可能是仓颉混合能力在 DevEco Studio 5.1.1 中存在已知问题,建议查阅 HarmonyOS 官方文档或社区,确认是否有临时补丁或配置调整。注意确保所有操作基于 HarmonyOS Next 的最新规范。

回到顶部