HarmonyOS 鸿蒙Next USB API 不支持 - OH_Usb_Init() 返回-19

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

HarmonyOS 鸿蒙Next USB API 不支持 - OH_Usb_Init() 返回-19

一、测试环境:

  • 使用真机-平板,无线方式调试USB
  • DevEco版本:Build Version: 5.0.5.306, built on December 6, 2024
  • SDK版本:HarmonyOS 5.0.1 Release SDK, inclusion of OpenHarmony SDK Ohos_sdk_public 5.0.1.112 (API Version 13 Release) as is.

二、测试步骤如下:

  1. 在Native侧引入usb相关文件(#include <usb/usb_ddk_api.h>等),并在cmakelist.txt中有增加链接库,如下:

    add_library(entry SHARED napi_init.cpp newUSB.cpp)
    target_link_libraries(entry PUBLIC libace_napi.z.so libusb_ndk.z.so libhilog_ndk.z.so).
    
  2. 在编辑环境下,调用 OH_Usb_Init()等USB函数均报错 - API not be supported. 查看头文件的路径如下图。

    cke_84568.png

  3. 不管报错信息,直接编译,可生成HAP文件,但HAP文件包中未包含 libusb_ndk.z.solibhilog_ndk.z.so 库。

  4. 连真机调试时,hilog可正常打印,OH_Usb_Init()的返回值是 -19。

想问下,大家是否有遇到这样的情况,是API版本不对,还是哪里设置的问题?

后将usb_ddk_api.h等头文件拷贝到项目中,libusb_ndk.z.so库也拷贝到项目libs目录下。不会报API不支持,但返回值会变成很大的整数或负数(例如-1062975488,只要不重启真机,这个值不变)。


更多关于HarmonyOS 鸿蒙Next USB API 不支持 - OH_Usb_Init() 返回-19的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

-19表示没有权限访问,可以详细参考DDK文档,符合DDK使用场景,并配置相应权限来使用

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/_usb_ddk-V5

更多关于HarmonyOS 鸿蒙Next USB API 不支持 - OH_Usb_Init() 返回-19的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next USB API 不支持 - OH_Usb_Init() 返回-19”的问题,以下提供直接的专业回答:

在HarmonyOS中,若OH_Usb_Init()函数返回-19,这通常表示初始化USB功能时遇到了特定的错误代码。在HarmonyOS的API文档中,-19可能对应于一个特定的错误状态,如资源不足、权限问题或硬件不支持等。由于具体的错误代码含义可能随HarmonyOS版本和具体实现而异,建议首先查阅当前HarmonyOS版本的官方API文档,了解-19错误代码的具体含义。

此外,确认以下几点可能有助于解决问题:

  • 确保应用已正确声明使用USB功能的权限。
  • 检查设备是否支持所需的USB功能。
  • 验证USB硬件连接是否正确无误。
  • 如果是在模拟器上运行,确认模拟器是否支持模拟USB功能。

如果上述检查均无误,且错误依旧存在,可能涉及更底层的系统或硬件问题。此时,应详细记录错误场景和上下文信息,以便进一步分析。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部