HarmonyOS 鸿蒙Next中CANN Kit Demo API版本适配问题
HarmonyOS 鸿蒙Next中CANN Kit Demo API版本适配问题 官方文档中给的CANN Kit Demo 在默认的API 12 / 15版本跑不起来 但Readme里标注了 HarmonyOS NEXT Developer Beta1及以上的 手机设备均可运行
DEMO仓库地址: CANN Kit Demo
运行后闪退 导入的so库不成功 为undefined
更多关于HarmonyOS 鸿蒙Next中CANN Kit Demo API版本适配问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
尊敬的开发者,您好!
您的问题已受理,请您耐心等待,感谢您的理解与支持!
更多关于HarmonyOS 鸿蒙Next中CANN Kit Demo API版本适配问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我找到了 是打开维测功能的API 要求API18及以上的 不需要维测的可以关掉
// CANNKit/hiai_options.h 中的 HMS_HiAIOptions_SetOmOptions 函数及入参中的 HiAI_OmType 枚举需要API18及以上
typedef enum {
/** Disables operating and maintenance. */
HIAI_OM_TYPE_OFF = 0,
/** Profiling type of operating and maintenance. */
HIAI_OM_TYPE_PROFILING = 1,
} HiAI_OmType;
OH_NN_ReturnCode HMS_HiAIOptions_SetOmOptions(OH_NNCompilation* compilation, HiAI_OmType type, const char* outputDir);
请问下是否有具体的报错信息,我们根据信息排查下具体原因。
Demo中部分API需要API18才能使用,已在文档中标注,您可以参考以下链接:https://gitee.com/harmonyos_codelabs/hiaifoundationkit-codelab-clientdemo-cpp
最低兼容版本API 18、最低兼容版本API 12~17,谢谢。
不好意思 我在Readme里没看到呀 那能不能提供一个兼容API12的Demo示例呢 谢谢,
鸿蒙Next中CANN Kit Demo适配需使用API 10版本。CANN Kit在鸿蒙Next仅支持ArkTS/JS开发,需在DevEco Studio中配置API 10的SDK路径,并在module.json5中声明"apiVersion": 10。现有CANN算子需通过NAPI机制封装调用,不支持直接C++代码集成。Demo工程需使用Stage模型重构,依赖包需更新至鸿蒙Next专用版本。
从错误信息来看,这是典型的动态库加载失败问题。根据截图显示,libcann_client.so
在运行时无法正确加载,导致符号解析失败。
可能的原因和解决方案:
-
架构匹配问题:检查设备架构与so库编译架构是否一致。HarmonyOS Next目前主要支持arm64-v8a,确保so库是针对该架构编译的。
-
依赖库缺失:使用
readelf -d
检查so库的依赖关系,确认所有依赖库都已正确部署到设备上。 -
部署路径问题:确认so库放置在正确的目录中。在HarmonyOS应用中,native库应放在
src/main/resources/rawfile/lib/
对应架构目录下。 -
API级别兼容性:虽然文档说支持API 12/15,但可能需要重新编译so库。检查编译时使用的NDK版本是否与当前HarmonyOS SDK匹配。
建议重新编译CANN Kit的native库,确保使用最新的HarmonyOS Native SDK,并验证部署配置。同时检查应用配置文件中的native库声明是否正确。