HarmonyOS鸿蒙Next中运行报错:Error message:Cannot read property add of undefined

HarmonyOS鸿蒙Next中运行报错:Error message:Cannot read property add of undefined 在DevEco Studio里使用模版新建项目,选择模版Native C++,其他默认,cke_1568.png
然后直接运行(PC连接的是DUYU200开发板(RK3568))
签名使用默认配置直接点击OK,

运行报错:cke_12215.png

cke_12864.png
cke_17239.png
hilog如下:

08-05 17:49:33.366 591 663 I C01400/Vsync: PostEvent: First vsync has send to : WM_15254

08-05 17:49:33.366 591 591 I C01406/OHOS::RS: DoComposition start time:2963880989070

08-05 17:49:33.366 591 591 E C02510/DISP: [GetMetadata:98] <private> is not supported

08-05 17:49:33.366 591 591 E C02510/DISP: [GetMetadata:98] <private> is not supported

08-05 17:49:33.366 591 591 E C02510/DISP: [GetMetadata:98] <private> is not supported

08-05 17:49:33.366 591 591 E C02510/DISP: [GetMetadata:98] <private> is not supported

08-05 17:49:33.366 15254 15254 I C03f01/NAPI: [(native_module_manager.cpp:598)(LoadNativeModule)] key is default/entry

08-05 17:49:33.366 591 591 E C02510/DISP: [GetMetadata:98] <private> is not supported

08-05 17:49:33.366 15254 15254 W C03f01/NAPI: [(native_module_manager.cpp:635)(LoadNativeModule)] module ‘entry’ does not in cache

08-05 17:49:33.366 15254 15254 E C03f00/MUSL-LDSO: Open absolute_path library: check ns accessible failed, pathname /system/lib/module/libentry.z.so namespace ndk.

08-05 17:49:33.366 15254 15254 E C03f00/MUSL-LDSO: Error loading header /system/lib/module/libentry.z.so, namespace ndk has no inherits, errno=2

08-05 17:49:33.366 15254 15254 E C03f00/MUSL-LDSO: Error loading header: can’t find library /system/lib/module/libentry.z.so in namespace: default

08-05 17:49:33.366 15254 15254 E C03f00/MUSL-LDSO: dlopen_impl load library header failed for /system/lib/module/libentry.z.so

08-05 17:49:33.367 15254 15254 E C03f00/MUSL-LDSO: Open absolute_path library: check ns accessible failed, pathname /system/lib/module/libentry_napi.z.so namespace ndk.

08-05 17:49:33.367 15254 15254 E C03f00/MUSL-LDSO: Error loading header /system/lib/module/libentry_napi.z.so, namespace ndk has no inherits, errno=2

08-05 17:49:33.367 15254 15254 E C03f00/MUSL-LDSO: Error loading header: can’t find library /system/lib/module/libentry_napi.z.so in namespace: default

08-05 17:49:33.367 15254 15254 E C03f00/MUSL-LDSO: dlopen_impl load library header failed for /system/lib/module/libentry_napi.z.so

08-05 17:49:33.367 15254 15254 E C03f01/NAPI: [(native_module_manager.cpp:917)(GetFileBuffer)] /system/etc/abc/entry.abc is not existed.

08-05 17:49:33.367 15254 15254 E C03f01/NAPI: [(native_module_manager.cpp:1016)(FindNativeModuleByDisk)] First attempt: load app module failed. Error loading shared library /system/lib/module/libentry.z.so: No such file or directory

08-05 17:49:33.367 15254 15254 E C03f01/NAPI: Second attempt: load app module failed. Error loading shared library /system/lib/module/libentry_napi.z.so: No such file or directory

08-05 17:49:33.367 15254 15254 E C03f01/NAPI: try to load abc file from /system/etc/abc/entry.abc failed

08-05 17:49:33.367 15254 15254 I C03f01/NAPI: [(ark_native_engine.cpp:480)(operator())] First attempt: load app module failed. Error loading shared library /system/lib/module/libentry.z.so: No such file or directory

08-05 17:49:33.367 15254 15254 I C03f01/NAPI: Second attempt: load app module failed. Error loading shared library /system/lib/module/libentry_napi.z.so: No such file or directory

08-05 17:49:33.367 15254 15254 I C03f01/NAPI: try to load abc file from /system/etc/abc/entry.abc failed

08-05 17:49:33.367 15254 15254 E C03f00/ArkCompiler: [default] [LoadNativeModule:464] export objects of native so is undefined, so name is entry

08-05 17:49:33.367 15254 15254 I C03f00/ArkCompiler: [default] [EvaluateNativeModule:491] LoadNativeModule @normalized:Y&&&libentry.so& failed

08-05 17:49:33.368 534 588 E C02510/DISP: [SetLayerVisibleRegion:313] <private> is not supported

08-05 17:49:33.368 534 588 E C02510/DISP: [SetLayerColor:352] <private> layerColor: r=0, g=0, b=0, a=0

08-05 17:49:33.368 534 588 E C02510/DISP: [SetLayerColor:353] <private> is not supported


更多关于HarmonyOS鸿蒙Next中运行报错:Error message:Cannot read property add of undefined的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该错误通常由未正确初始化的对象引起。在HarmonyOS Next中,检查以下可能原因:

  1. 组件生命周期问题:在aboutToAppear或onPageShow等生命周期函数中确保对象已完成初始化
  2. 状态变量未定义:使用@State@Link装饰的变量需确保初始值正确设置
  3. 异步操作时序:异步回调中访问对象前需验证其存在性
  4. 自定义组件未正确挂载:检查组件是否已在build函数中正确定义

建议使用条件判断确保对象存在后再调用add方法,例如:obj?.add()或if(obj){obj.add()}。

更多关于HarmonyOS鸿蒙Next中运行报错:Error message:Cannot read property add of undefined的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


根据hilog日志分析,错误的核心原因是系统无法加载Native C++模块所需的动态库文件。日志显示:

  1. 系统在 /system/lib/module/ 路径下找不到 libentry.z.solibentry_napi.z.so 文件
  2. 同时也无法找到 /system/etc/abc/entry.abc 文件

这通常是由于以下原因造成的:

编译配置问题:检查项目的 build-profile.json5 文件,确认 Native C++ 模块的编译配置是否正确。确保 externalNativeOptions 中的 path 指向正确的 CMakeLists.txt 文件。

签名配置问题:虽然使用了默认签名,但需要确认签名配置是否支持 Native 能力。在 module.json5 中检查 "abilities" 下的 "type" 字段是否为 "page",并且 "srcEntry" 指向正确的入口文件。

设备兼容性:DUYU200开发板(RK3568)可能需要特定的系统镜像版本。确认开发板上的HarmonyOS Next系统版本与DevEco Studio中配置的SDK版本匹配。

建议重新生成Native C++项目,检查CMakeLists.txt中的目标库名称是否与代码中的调用一致,确保编译后生成的so文件能正确部署到设备。

回到顶部