跳到主要内容

Node-API常见问题

稳定性

  1. 应用运行过程中出现高概率闪退,出现cppcrash栈,栈顶为系统库libark_jsruntime.so,崩溃栈前几帧也有libace_napi.z.so,怎么进行定位解决
  2. c++线程池中并发调用ArkTS方法(c++多线程调用ArkTS方法),如何处理线程安全问题?
  3. napi_value非预期,napi_value创建时类型是napi_function,保存一段时间后napi_value类型发生变化
  4. 是否存在获取最新napi_env的方法?
  5. napi_add_env_cleanup_hook/napi_remove_env_cleanup_hook调用报错,该如何处理?

内存泄漏

  1. napi_create_reference可以创建对js对象的引用,保持js对象不释放,正常来说使用完需要使用napi_delete_reference进行释放,但怕漏delete导致js对象内存泄漏,当前是否有机制来检查/测试是否有泄漏的napi_reference?
  2. Node-API开发过程中,遇见内存泄漏问题,要怎么定位解决?
  3. 参数泄漏问题参考napi_open_handle_scope、napi_close_handle_scope
  4. napi_threadsafe_function内存泄漏,应该如何处理?

常见基本功能问题

  1. 模块加载失败,Error message: is not callable NativeModule调用报错?
  2. 是否有保序的线程通信推荐写法?
  3. 是否存在便捷的NAPI回调ArkTS的方式?
  4. 如何在C++调用从ArkTS传递过来的function?
  5. 如何在遵循 Node-API 单一返回值约束的前提下,安全、高效地将多个返回值(包括结构化数据和指针信息)传递给 ArkTS 运行时环境,并确保数据类型的正确映射与内存管理的安全性?
  6. Node-API调用三方so
  7. napi_get_uv_event_loop接口错误码说明
  8. Node-API中,native层调用ArkTS层对象方法,必须传入一个function给native层吗?
  9. 在c++通过pthread或std::thread创建的线程,是否能调用ArkTS的方法并获取到结果?
  10. 当前napi的napi_get_value_string_utf8每次调用的时候都要进行拷贝,是否有nocopy、不拷贝的napi_get_value_string_utf8接口或者能力?
  11. 多线程下napi_env的使用注意事项是什么?是否存在napi_env切换导致的异常问题?是否必须在主线程?
  12. napi_call_threadsafe_function执行顺序是怎样的?
  13. ArkTS侧import xxx from libxxx.so后,使用xxx报错显示undefined/not callable或明确的Error message
  14. 接口执行结果非预期,日志显示occur exception need return
  15. napi_value和napi_ref的生命周期有何区别
  16. Node-API接口返回值不是napi_ok时,如何排查定位
  17. napi_wrap如何保证被wrap的对象按期望顺序析构?
  18. napi_call_threadsafe_function回调任务不执行