HarmonyOS napi_load_module在har里面使用,反射路径该怎么写?

HarmonyOS
2024-12-19 16:40:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang
static napi_value LoadModule(napi_env env, napi_callback_info info) {
  size_t argc = 2;
  napi_value args[2] = {nullptr};

  napi_status params = napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);

  napi_value path_c = args[1];
  napi_value name_c = args[0];
  char name[500] = {0};
  char path[500] = {0};
  size_t len1 = 0;
  size_t len2 = 0;
  napi_get_value_string_utf8(env, name_c, name, 500, &len1);
  napi_get_value_string_utf8(env, path_c, path, 500, &len2);
  //OH_LOG_ERROR(LOG_APP, "chenlin LoadModule %{public}s", name);
  napi_value result;
  // napi_status status = napi_load_module(env , "ets/pages/Test", &result);
  napi_status status = napi_load_module_with_info(env, name, path, &result);

  napi_value nameFun = nullptr;
  status = napi_get_named_property(env, result, "circleTest", &nameFun);
  napi_value outputObject;
  status = napi_call_function(env, nullptr, nameFun, 0, nullptr, &outputObject);

  OH_LOG_ERROR(LOG_APP, "chenlin LoadModule status %{public}d", status);
  // if (status != napi_ok) {
  // return nullptr;
  // }
  return result;
}
export function circleTest(a: string) {
  a = "com.example.loadmoduleinfodemo/entry"
  let libHar:ESObject = napi.napiLoadModule("libraryHar",a);
  console.log(libHar.b);
  libHar.circleTest();
}
build-profile.json5

"buildOption": {
  "arkOptions": {
    "runtimeOnly": {
      "sources": [
      // 用于动态import的单文件场景,静态import和常量表达式动态import不需要配置
      ],
      "packages": [ 'libraryHar', 'liblibrary.so']//har2,har1的so
    }},
  "externalNativeOptions": {
    "path": "./src/main/cpp/CMakeLists.txt",
    "arguments": "",
    "cppFlags": "",
    //"abiFilters": ["armeabi-v7a"]
  }
},
har2

index.ets

export { b, c,libHarTest, circleTest } from "./src/main/ets/Test"
export function circleTest() {
  console.log("napi_load_module_with_info static product har function test circle");
}
export let b = "napi_load_module_with_info static product har variable test circle";
分享
微博
QQ
微信
回复
2024-12-19 19:03:39
相关问题
HarmonyOS反射怎么
213浏览 • 1回复 待解决
主工程要怎么使用module里面的颜色?
344浏览 • 1回复 待解决
HarmonyOS NAPI调用HAR模块失败
1122浏览 • 1回复 待解决
HarmonyOS 怎么代码里循环标签
258浏览 • 1回复 待解决
HarmonyOS怎么反射调用,有demo吗
447浏览 • 1回复 待解决