Error message:Cannot read property action of undefined
Stacktrace:
at anonymous @uni_modules/uni-push (uni_modules/uni-push/utssdk/app-harmony/index.ets:348:14)
at emit @dcloudio/uni-mp-sdk (oh_modules/.ohpm/@dcloudio+uni-app-runtime@jakfngz7cm+tr6zb9bbjju2z+jqkuucunurglspq+fa=/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:61:24)
at onCreate @dcloudio/uni-mp-sdk (oh_modules/.ohpm/@dcloudio+uni-app-runtime@jakfngz7cm+tr6zb9bbjju2z+jqkuucunurglspq+fa=/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/EntryAbility.ets:41:23) - 发布:2026-08-25 11:12
- 更新:2026-08-26 17:59
- 阅读:204
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Win11 25H2
HBuilderX类型: 正式
HBuilderX版本号: 5.24
手机系统: HarmonyOS NEXT
手机系统版本号: HarmonyOS 6.0.0
手机厂商: 华为
手机机型: nova 16
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
看描述
看描述
预期结果:
看描述
看描述
实际结果:
看描述
看描述
bug描述:
正在调试鸿蒙NEXT的unipush2.0离线推送,按照文档完成了各种配置,开启了鸿蒙版的unipush,运行到手机(nova 19, 6.1.0)和模拟器,debug模式和release模式、HBuilderX运行和DevEco运行都尝试了,都会闪退,闪退日志详情看附件,下面是其中一部分
Error message:Cannot read property action of undefined
Stacktrace:
at anonymous @uni_modules/uni-push (uni_modules/uni-push/utssdk/app-harmony/index.ets:348:14)
at emit @dcloudio/uni-mp-sdk (oh_modules/.ohpm/@dcloudio+uni-app-runtime@jakfngz7cm+tr6zb9bbjju2z+jqkuucunurglspq+fa=/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/sdk.js:61:24)
at onCreate @dcloudio/uni-mp-sdk (oh_modules/.ohpm/@dcloudio+uni-app-runtime@jakfngz7cm+tr6zb9bbjju2z+jqkuucunurglspq+fa=/oh_modules/@dcloudio/uni-app-runtime/src/main/ets/uni-mp-sdk/EntryAbility.ets:41:23)
我尝试取消勾选unipush,重新打包正常打开,但会报uni.onPushMessage is not a function
结合AI最终得出结论(官方判断下,我也不知道是不是这个问题),uni-push的sdk存在BUG
我也不知道是否就我有这个问题,论坛和网上均没搜索到相关
uniapp官方关于鸿蒙和推送的相关文档均查看并确认了配置,甚至个推的文档和华为的文档都看了,确认几个证书文件和相关配置是没有问题的
百搜全端云 - 百搜开发团队
uni‑push2.0 鸿蒙 Next 闪退
报错:Cannot read property action of undefined
堆栈:uni‑push/utssdk/app‑harmony/index.ets:348:14
问题根源
鸿蒙冷启动场景,onCreate生命周期推送插件收到 event = undefined,源码直接访问event.action,没有做空判断直接取值,直接 APP 闪退。
不是证书、签名、工程配置问题,属于 uni‑push 鸿蒙 UTS 插件内部代码 bug。
现象特征
关闭 uni‑push 插件 → App 正常启动;开启插件冷启动直接闪退。
Debug/Release、HBuilderX 基座 / DevEco 打包均复现。
热打开 App 不一定复现,冷启动(杀掉后台重开)必概率闪退。
日志确认 runtime 传给插件onCreate的 event 参数为undefined。
临时规避方案(改插件源码)
修改 uni_modules/uni‑push/utssdk/app‑harmony/index.ets,定位 348 行附近
原代码(直接读取 event.action)
ts
emit(SDK.js, 'onCreate', event.action, event);
增加空保护,先判断 event 是否存在
ts
if(!event) return; //增加做空拦截
emit(SDK.js, 'onCreate', event.action, event);
修改完重新制作自定义基座验证,冷启动不会再闪退。
其他检查点
uni‑push 鸿蒙版本:更新到插件市场最新版;如果官方还未修复,只能手动打补丁。
不要在entryability手动修改推送相关初始化,保持 uni‑push 接管。
该 bug 只发生在鸿蒙 Next;Android/iOS 不受影响。
提交 bug 关键描述
uni‑push2.0 鸿蒙插件 onCreate 回调冷启动收到 event 为 undefined,直接访问 event.action 无空判断,造成应用闪退;手动增加 if (!event) return 可规避。证书签名配置全部正确。
等待 DCloud 官方插件更新修复该代码缺陷。
极简总结
鸿蒙冷启动传入event=undefined,插件代码没做空校验,读取event.action直接崩溃;手动给 ets 源码增加if(!event) return临时修复。