HarmonyOS鸿蒙Next中调用OH_UsbSerial_Init报API not be supported

HarmonyOS鸿蒙Next中调用OH_UsbSerial_Init报API not be supported cke_125.png

该API文档:

cke_2819.png

cke_10240.png

CMakeList.text:

cke_7547.png

权限:

cke_9277.png

各位大佬,能帮忙看一下这个要怎么处理,有类似问题的解决方案吗?


更多关于HarmonyOS鸿蒙Next中调用OH_UsbSerial_Init报API not be supported的实战教程也可以访问 https://www.itying.com/category-93-b0.html

19 回复

API 18版本的IDE不会报错,使用API 18 release版本的IDE测试下呢?

更多关于HarmonyOS鸿蒙Next中调用OH_UsbSerial_Init报API not be supported的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我去试试。,

不报错,但是运行后:

import nativeFun from 'libentry.so';
nativeFun 是 undefined,去掉CMakeList.txt中:target_link_libraries(entry PUBLIC libace_napi.z.so libusb_serial_ndk.z.so),这一行配置的libusb_serial_ndk.z.so后,就正常。

但是libusb_serial_ndk.z.so是照:
[这个示例文档写入的](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/usb-serial-ddk-guidelines#%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86)

不知道是不是中间还遗漏了哪些内容,大佬可有遇到过?

当前项目使用的HarmonyOS SDK版本可能不支持OH_UsbSerial_Init接口。

此接口需要特定的SDK版本支持 18+

检查一下你的项目是否达到指定版本号

大佬,我去看了当前SDK版本: HarmonyOS 5.1.1 Release SDK,原样包含OpenHarmony SDK Ohos_sdk_public 5.1.1.202 (API Version 19 Release) OpenHarmony SDK 是启用的 API Version 18(当前编译器能下载的最新版本)

是否还有其他因素会影响这个OH_UsbSerial_Init接口的使用?

把相关的头文件直接拷贝到项目目录里,然后用 #include “xxx.h”。

项目目录是libentry吗?大佬有参考的文档吗?这块的开发我是小白,还望多指导。

#include 路径要指定对。 例:#include "../cpp/types/libentry/usb_serial_api.h" 要确认下你的项目结构是否和上面的一样。

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

运行后出现一个问题:

import nativeFun from 'libentry.so';

这个 nativeFun 变成 undefined 了,如果不调用usb_serial_api.h的方法,去掉CMakeList.txt添加的libusb_serial_ndk.z.so后,就又正常。

楼主这个开发实在什么设备上开发的:我看支持的设备里面没有手机
cke_661.png

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

华为平板。

楼主的编译器尝试用最新的试试,旧版的编译器有些不支持

试试API 18版本的IDE呢?

换了API 18版本的IDE,莫有报API not be supported了

有另外一个问题,大佬看看能不能帮忙参详一下:

import nativeFun from 'libentry.so';

现在构建完成后,运行到模拟器上调用 nativeFun 发现是 undefined, 还原去掉CMakeList.txt添加的libusb_serial_ndk.z.so后,再运行就正常,nativeFun 能够调用在native C++写的方法。

这块内容是照: 华为开发者文档 这个示例文档写入的,不知道是不是中间还遗漏了哪些内容,大佬可有遇到过?

libusb_serial_ndk.z.so是给PC开发用户态驱动的,手机形态暂不支持使用

在HarmonyOS Next中调用OH_UsbSerial_Init报"API not be supported"错误,表明该API在当前版本或设备上不可用。可能原因包括:

  1. 该API尚未在Next版本中实现;
  2. 设备不支持USB串口功能;
  3. 使用的SDK版本不匹配。

需检查官方文档确认API兼容性,并验证设备是否具备USB Host功能。替代方案可考虑使用@ohos.usbV2相关接口。

从您提供的截图和描述来看,在HarmonyOS Next中调用OH_UsbSerial_Init接口时遇到了"API not be supported"错误。这个问题可能有以下几个原因:

  1. 该API在HarmonyOS Next版本中可能已被标记为废弃或移除。从截图中的文档来看,这个接口属于@syscap SystemCapability.Communication.Usb,需要确认该能力在当前版本是否仍然支持。

  2. CMakeLists.txt中虽然链接了相关库,但可能版本不匹配。建议检查SDK版本是否与开发环境匹配。

  3. 权限配置看起来是正确的,包含ohos.permission.USB和ohos.permission.MANAGE_USB_CONFIG。

建议您:

  1. 查看最新的HarmonyOS Next API文档,确认该接口是否仍然可用
  2. 检查SDK版本是否与开发环境匹配
  3. 尝试使用替代API或新版本提供的USB接口

如果问题仍然存在,建议提供更详细的开发环境信息(如SDK版本号)以便进一步分析。

回到顶部