HarmonyOS鸿蒙Next中引入三方库@ohos/box2d编译报错问题

HarmonyOS鸿蒙Next中引入三方库@ohos/box2d编译报错问题 在引入ohpm第三方库的box2d时,使用各种版本都不能正常导入

有很奇怪的现象:

在编写程序的时候,代码是正常编写的,没有任何报错。

cke_14494.png

但在编译打包到模拟器上时,出现无法编译问题:

cke_15031.png

请问这个是怎么回事,调整SDK版本也不行。

按照指示重新init和install ohpm也不行。


更多关于HarmonyOS鸿蒙Next中引入三方库@ohos/box2d编译报错问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者你好,可以提供一个可以复现的demo吗,我使用6.0.0 Release版本暂未复现你的这个报错。是否有尝试过打包到真机上试下?另外你的Deveco Studio的版本是多少?

从报错信息来看:00309003错误码是无法解析import语句

  • 在开启大小写敏感时(即工程级build-profile.json5的caseSensitiveCheck设置为true),import的文件夹中只包含Index.ets或Index.ts(大写I),当前import文件夹仅支持index.ets或index.ts(小写i)。
  • 在开启大小写敏感时,import的文件和实际的文件名大小写不一致。

处理步骤

  • 将import文件夹改为import具体的文件,如果要import文件夹,确保文件夹中存在index.ets或index.ts(小写i)。
  • 确保import的文件和实际的文件名大小写一致。

更多关于HarmonyOS鸿蒙Next中引入三方库@ohos/box2d编译报错问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


谢谢,确认是caseSensitiveCheck的问题,修改后能正常运行,

在HarmonyOS Next中引入@ohos/box2d库编译报错,通常由以下原因导致:

  1. 三方库未适配HarmonyOS Next的API版本,需检查库的兼容性。
  2. 项目配置中未正确声明依赖或版本不匹配,需核对oh-package.json文件。
  3. 开发环境SDK版本与库要求不一致,需确保DevEco Studio及SDK为最新版本。
  4. 库本身存在编译脚本或资源问题,需查看具体报错信息定位。

这是一个典型的编译时依赖解析失败问题。从错误信息来看,@ohos/box2d 库在编译时无法找到其声明的 @ohos/hvigor-ohos-plugin 插件依赖。

根本原因在于,@ohos/box2d 这个第三方库的 oh-package.json5 文件中,可能声明了仅适用于其开发构建环境的特定构建插件(hvigor-ohos-plugin),而这个插件在您的项目环境或当前HarmonyOS Next的SDK中不可用、不匹配或已被弃用。

解决方案:

  1. 检查库的兼容性:首先确认您使用的 @ohos/box2d 版本是否明确支持 HarmonyOS Next。许多早期的 ohpm 库是针对 OpenHarmony 或旧版 HarmonyOS 开发的,其构建配置可能与 Next 的构建工具链不兼容。

  2. 临时绕过方案(推荐尝试):在您的项目根目录的 oh-package.json5 文件中,使用 resolution 字段强制覆盖该依赖的版本或将其替换为一个兼容的版本(如果存在),或者尝试忽略该插件依赖。例如:

    {
      "resolution": {
        "@ohos/box2d": {
          "version": "您尝试过的另一个已知可用版本"
        }
      }
    }
    

    如果库本身不必须依赖该插件,且您确定其代码在Next上可运行,可以尝试在您的项目 hvigorfile.ts 配置中排除或提供该插件的替代方案,但这需要较高的技术判断力。

  3. 联系库维护者:访问该库在 ohpm 仓库或 Gitee 上的项目主页,查看是否有已关闭或未解决的相关Issue,或提交新的Issue,说明在 HarmonyOS Next 上构建失败的问题,敦促其更新构建配置以支持 Next。

  4. 寻找替代库:如果上述方法无效,且该库非必需,考虑寻找其他功能相似且明确支持 HarmonyOS Next 的物理引擎或工具库进行替代。

由于这是三方库的构建配置与当前SDK环境不匹配导致的问题,通常需要库作者更新适配。在论坛中搜索该库名称和“Next”关键词,看是否有其他开发者已遇到并解决了相同问题。

回到顶部