使用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)
开发者您好,目前仓颉最高只支持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项目后运行报错,常见原因包括:
- 项目依赖的SDK版本与DevEco Studio版本不匹配。
- 项目配置文件(如
build-profile.json5或module.json5)中存在语法或配置错误。 - 本地Node.js或Ohpm环境未正确安装或版本过低。
- 项目所需的Cangjie相关依赖包未能成功下载或安装。
请检查上述配置,确保环境与依赖项符合项目要求。
这个错误表明在加载仓颉(Cangjie)混合能力(Hybrid Ability)项目时,ArkCompiler 在解析模块依赖时遇到了问题。具体来说,错误信息指出模块 @normalized:Y&&&libark_interop_loader.so& 没有提供名为 requireCJLib 的导出项,而该导出项被 entry/src/main/ets/pages/Index 导入。
问题分析:
- 仓颉混合能力依赖缺失:仓颉混合能力项目依赖于特定的原生库(如
libark_interop_loader.so)来提供仓颉相关的功能接口(例如requireCJLib)。错误提示表明这些依赖未正确配置或加载。 - DevEco Studio 5.1.1 Release 兼容性问题:DevEco Studio 5.1.1 可能对仓颉混合能力的支持存在配置差异,导致模块导出失败。
- 项目构建或运行环境问题:可能是项目依赖未同步、缓存未清理或 SDK 版本不匹配。
解决步骤:
-
检查项目配置:
- 确保
build-profile.json5或module.json5中已正确声明仓颉混合能力依赖。例如,检查"abilities"或"extensionAbilities"配置中是否包含仓颉相关设置。 - 确认
oh-package.json5中已添加必要的仓颉混合能力包依赖,例如@ohos/cangjie或相关库。
- 确保
-
清理和重建项目:
- 在 DevEco Studio 中执行
File > Invalidate Caches and Restart,清理缓存并重启。 - 删除项目下的
build、node_modules和oh_modules目录,然后重新运行ohpm install和构建。
- 在 DevEco Studio 中执行
-
更新 SDK 和工具链:
- 检查 DevEco Studio 的 SDK Manager,确保 HarmonyOS SDK 版本与仓颉混合能力要求匹配(例如 SDK API 11+)。必要时更新到最新版本。
- 确认 DevEco Studio 5.1.1 Release 已安装所有推荐插件和工具链。
-
验证原生库加载:
- 检查
src/main/cpp或libs目录下是否存在libark_interop_loader.so或相关原生库文件。如果缺失,需通过 ohpm 或手动添加依赖。 - 确保
CMakeLists.txt或build-profile.json5中正确配置了原生库的链接路径。
- 检查
-
检查代码导入语句:
- 在
src/main/ets/pages/Index.ts的第 62 行附近,确认导入requireCJLib的语句是否正确。例如,应为import { requireCJLib } from '@ohos/cangjie'或类似格式。如果路径错误,修正为官方文档提供的模块名。
- 在
如果以上步骤无效,可能是仓颉混合能力在 DevEco Studio 5.1.1 中存在已知问题,建议查阅 HarmonyOS 官方文档或社区,确认是否有临时补丁或配置调整。注意确保所有操作基于 HarmonyOS Next 的最新规范。

