Deveco Studio中Error message:Cannot read property add of undefined如何解决

在Deveco Studio5.0.3中开发串口通信应用程序,项目模板选择Native C/C++,应用开发完成后安装到开发板上,进入应用程序,点击界面上的按钮,然后IDE中会提示产生了一个jscrash,点击查看详细情况,则会提示题目中错误。尝试了多种方法,修改配置文件,重写功能代码和界面,都是同样的错误。
然后我就用该项目模板的初始代码hello world来进行测试,也是同样的问题。该项目中napi_init.cpp文件中注册了共享库
#include "napi/native_api.h"
#include "hilog/log.h"
#undef LOG_DOMAIN
#undef LOG_TAG
#define LOG_DOMAIN 0x0201
#define LOG_TAG "NAPI_DEMO"
// NAPI 函数
static napi_value Add(napi_env env, napi_callback_info info)
{
size_t argc = 2;
napi_value args[2] = {nullptr};
napi_get_cb_info(env, info, &argc, args, nullptr, nullptr);
napi_valuetype valuetype0;
napi_typeof(env, args[0], &valuetype0);
napi_valuetype valuetype1;
napi_typeof(env, args[1], &valuetype1);
double value0 = 0;
napi_get_value_double(env, args[0], &value0);
double value1 = 0;
napi_get_value_double(env, args[1], &value1);
double result = value0 + value1;
OH_LOG_INFO(LOG_APP, "Add called with %{public}f + %{public}f = %{public}f", value0, value1, result);
napi_value sum;
napi_create_double(env, result, &sum);
return sum;
}
// 模块初始化
EXTERN_C_START
static napi_value Init(napi_env env, napi_value exports)
{
OH_LOG_INFO(LOG_APP, "Init called, registering NAPI methods");
napi_property_descriptor desc[] = {
{"add", nullptr, Add, nullptr, nullptr, nullptr, napi_default, nullptr}
};
napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
return exports;
}
EXTERN_C_END
static napi_module demoModule = {
.nm_version = 1,
.nm_flags = 0,
.nm_filename = nullptr,
.nm_register_func = Init,
.nm_modname = "entry", // JS import 时的模块名
.nm_priv = ((void*)0),
.reserved = {0},
};
extern "C" __attribute__((constructor)) void RegisterEntryModule(void)
{
OH_LOG_INFO(LOG_APP, "RegisterEntryModule called, registering demoModule");
napi_module_register(&demoModule);
}
在ets文件中导入默认生成的libentry.so文件,其中代码如下所示
import { hilog } from '@kit.PerformanceAnalysisKit';
import testNapi from 'libentry.so';
const DOMAIN = 0x0000;
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize($r('app.float.page_text_font_size'))
.fontWeight(FontWeight.Bold)
.onClick(() => {
this.message = 'Welcome';
hilog.info(DOMAIN, 'testTag', 'Test NAPI 2 + 3 = %{public}d', testNapi.add(2, 3));
})
}
.width('100%')
}
.height('100%')
}
}
cmakelists.txt文件内容如下
# the minimum version of CMake.
cmake_minimum_required(VERSION 3.5.0)
project(Open_Serial_09_01)
set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
if(DEFINED PACKAGE_FIND_FILE)
include(${PACKAGE_FIND_FILE})
endif()
include_directories(${NATIVERENDER_ROOT_PATH}
${NATIVERENDER_ROOT_PATH}/include)
add_library(entry SHARED napi_init.cpp)
target_link_libraries(entry PUBLIC
libace_napi.z.so
libhilog_ndk.z.so # <<< 必须要加这个
libc++.a
)
set_target_properties(entry PROPERTIES OUTPUT_NAME "entry")
上述代码中尝试添加一些log查看程序制定到哪里,但是点击应用界面,就直接退出,进入开发板,执行hilog也没有任何输出
搜索了较多博客,按照他们的方法进行修改,也没有任何作用。尝试了多次,现在多这个问题更加没有思路了,不知道是哪里可能会出问题,我的串口通信程序中,
import Uart from libuartnapi.so;在系统里面查看Hilog会提示这个undefined。不知道该如何解决这个问题了,请问是模板选择问题还是配置问题或者是其他可能的问题