汉堡王
汉堡王
  • 发布:2025-05-09 15:34
  • 更新:2025-07-09 14:50
  • 阅读:163

【报Bug】编译到鸿蒙next,crypto报错TypeError: Cannot read properties of undefined (reading 'getRandomValues')

分类:鸿蒙Next

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 4.64

手机系统: HarmonyOS NEXT

手机系统版本号: HarmonyOS NEXT Developer Beta1

手机厂商: 华为

手机机型: Mate60

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

示例代码:
try {  
  console.log("typeof crypto:",typeof crypto);  
  console.log("typeof crypto.getRandomValues:",typeof crypto.getRandomValues);  
  var rnds8 = new Uint8Array(16);  
  const res = crypto.getRandomValues(rnds8);   
  console.log("res:",res);  
} catch (e) {  
  console.log("crypto error:",e);  
}

操作步骤:

本地打包然后在鸿蒙真机上运行

预期结果:

15:26:45.760 typeof crypto:, object at main.js:42
15:26:45.760 typeof crypto.getRandomValues:, function at main.js:43
15:26:45.784 res:, 106,210,46,8,40,111,162,164,176,187,37,7,158,202,246,197 at main.js:46

实际结果:

2025-05-09 15:27:23: typeof crypto: object at main.js:42
2025-05-09 15:27:23: typeof crypto.getRandomValues: function at main.js:43
2025-05-09 15:27:23: crypto error: TypeError: Cannot read properties of undefined (reading 'getRandomValues') at main.js:46

bug描述:

鸿蒙next中使用不了crypto.getRandomValues,typeof crypto.getRandomValues打印出来是function,但是一调用就报错TypeError: Cannot read properties of undefined (reading 'getRandomValues')

2025-05-09 15:34 负责人:DCloud_UNI_OttoJi 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

临时解决方案:把附件里的 UniAppRuntime.har 放到 harmony-configs/libs 目录下,删除 unpackages 重新运行选择清空缓存。

经过我测试 crypto 和 uuid 可以正常使用

  • 汉堡王 (作者)

    问题解决了,感谢!

    2025-05-13 15:22

DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

https://issues.dcloud.net.cn/pages/issues/detail?id=18438

HBuilderX 4.71.2025061206-alpha 修复了此问题。

要回复问题请先登录注册