HarmonyOS OH_NativeXComponent_GetXComponentId函数编译找不到符号表,但是我头已经引用

#include "napi/native_api.h"
#include "hilog/log.h"
#undef LOG_TAG
#define LOG_TAG "QN_Media"
#include <string>
#include <cstdint>
#include <ace/xcomponent/native_interface_xcomponent.h>

  using namespace std;

unordered_map<std::string, OH_NativeXComponent *> nativeXComponentMap;

static void bindXComponent(napi_env env, napi_value exports){
  napi_value exportInstance = nullptr;
  if(napi_get_named_property(env, exports, OH_NATIVE_XCOMPONENT_OBJ, &exportInstance) != napi_ok){
    OH_LOG_INFO(LOG_APP, "xcomponment 获取失败");
    return;
  }
  OH_NativeXComponent* nativeXComponent = nullptr;
  if(napi_unwrap(env, exportInstance, (void **)&nativeXComponent) != napi_ok){
    OH_LOG_INFO(LOG_APP, "nativeXComponent 获取失败");
    return;
  }
  char idStr[OH_XCOMPONENT_ID_LEN_MAX+1] = {'\0'};
  uint64_t idSize = OH_XCOMPONENT_ID_LEN_MAX+1;
  if(OH_NativeXComponent_GetXComponentId(nativeXComponent, idStr, &idSize) != OH_NATIVEXCOMPONENT_RESULT_SUCCESS){
    OH_LOG_INFO(LOG_APP, "xcomponment 获取id失败");
    return;
  }
  string xComId(idStr);
  OH_LOG_INFO(LOG_APP, "xcomponment 获取id%{public}s", xComId.c_str());
}

EXTERN_C_START
static napi_value Init(napi_env env, napi_value exports)
{
  /*napi_property_descriptor desc[] = {
      { "add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr },
      { "initSDK", nullptr, initSDK, nullptr, nullptr, nullptr, napi_default, nullptr},
      { "unInitSDK", nullptr, unInitSDK, nullptr, nullptr, nullptr, napi_default, nullptr},
      { "connect", nullptr, connect, nullptr, nullptr, nullptr, napi_default, nullptr},
      { "disConnect", nullptr, disConnect, nullptr, nullptr, nullptr, napi_default, nullptr},
      { "disAllConnect", nullptr, disAllConnect, nullptr, nullptr, nullptr, napi_default, nullptr},
      { "startLive", nullptr, startLive, nullptr, nullptr, nullptr, napi_default, nullptr}
  };
  napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);*/
  bindXComponent(env, exports);
  OH_LOG_INFO(LOG_APP, "加载media的库");
  return exports;
}
EXTERN_C_END

static napi_module qnmediaModule = {
  .nm_version = 1,
  .nm_flags = 0,
  .nm_filename = nullptr,
  .nm_register_func = Init,
  .nm_modname = "qnmedia",
  .nm_priv = ((void*)0),
  .reserved = { 0 },
};

extern "C" __attribute__((constructor)) void RegisterEntryModule(void)
{
  napi_module_register(&qnmediaModule);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
HarmonyOS
2024-12-19 16:21:27
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
aquaa

正确引用了头文件,可能是CmakeLists中未正确包含库文件导致。根据错误信息, 需要确保native_media_codecbase, native_media_core, native_media_vdec等库都被正确链接,参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/_o_h___native_x_component-V5

分享
微博
QQ
微信
回复
2024-12-19 18:24:58
相关问题
编译so时如何去除符号表
3975浏览 • 1回复 待解决
HarmonyOS 引用找不到方法
1146浏览 • 1回复 待解决
HarmonyOS app Crash但是找不到错误原因
1084浏览 • 1回复 待解决
HarmonyOS 依赖自己编译的so,找不到
1612浏览 • 1回复 待解决
HarmonyOS 关于OH_NativeXComponent的销毁
879浏览 • 1回复 待解决
Native so 编译 opencv,报找不到 libunwind.so
1874浏览 • 1回复 待解决
HarmonyOS 找不到对应组件
1103浏览 • 1回复 待解决
HarmonyOS 找不到GestureRecognizer类
888浏览 • 1回复 待解决
HarmonyOS version-name找不到
1301浏览 • 1回复 待解决
HarmonyOS 找不到崩溃日志问题
1131浏览 • 1回复 待解决
Harmony找不到HCI日志
3513浏览 • 1回复 待解决