HarmonyOS 鸿蒙Next har包和entry工程联调

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next har包和entry工程联调

想在工程通过entry库联调我的singsound库,singsound里面有so库。
但是目前不知道这两个库之间需要怎么进行联调,能否给一个最佳实践的demo,最好有完整的两个库之间实现联调的原理和步骤,

2 回复
可以尝试以下方案: entry 模块的 oh-package.json5文件中 直接依赖本地har模块 "singsoundsdk":"file: ../singsound" (相对路径指向har模块)
// 在 singsound模块的oh-package.json5文件中添加C++的依赖
// libcfeature 是C++ 暴露的接口/方法的文件夹(包含Index.d.ts 和 oh-package.json5文件 )
"dependencies": {
    "libcfeature.so": "file:./src/main/cpp/types/libcfeature"
}

//在 singsound模块的 根目录下 的 Index.ets 文件中,对外暴露需要用到的方法 // from(指向C++代码对外暴露的Index.d.ts文件及oh-package.json5文件的父文件夹) // add是C++暴露的方法,在 Index.d.ts 文件中声明 export { add } from ‘./src/main/cpp/types/libcfeature’

或者是 以下方式 export { add } from libcfeature.so

// 具体结构可以新建一个 C++模块来参考

修改好后,同步一下工程(File -> Sync and Refresh Proect),再尝试运行

更多关于HarmonyOS 鸿蒙Next har包和entry工程联调的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next中,har包与entry工程的联调涉及多个步骤和配置。以下是一些关键步骤:

  1. 依赖配置:在entry工程的oh-package.json5文件中,添加对har包的直接依赖。例如,如果har包名为“singsoundsdk”,则配置为"singsoundsdk":"file: ../singsound"(相对路径指向har包)。
  2. C++依赖处理:若har包中包含C++库,如libcfeature.so,需在har包的oh-package.json5文件中声明此依赖,并在entry工程中正确引用。在Index.ets文件中,通过export {add} from 'libcfeature.so'等方式暴露C++库中的方法。
  3. 同步与运行:修改配置后,同步工程(File->Sync and Refresh Project),然后尝试运行。确保所有路径和依赖均正确无误。
  4. 调试与测试:利用DevEco Studio提供的调试工具,进行JS、ArkTS、C/C++等跨语言调试,确保har包与entry工程之间的交互正常。

如果遵循上述步骤后仍遇到问题,建议检查路径配置、依赖关系以及DevEco Studio的版本兼容性。若问题依旧没法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部