来自 JS 的格式错误的调用:字段大小不同

问题描述 投票:0回答:1

我已经浏览了链接:https://github.com/facebook/react-native/issues/23835#issuecomment-493007479

但没有解决办法。我了解到这个错误是在以下情况触发的:

  1. 您在 React Native 桥上以数组形式发送 NaN。我对此了解不多。
  2. 在动画中使用无效数据(无穷大)期间。
  3. 在底部导航期间。
  4. 使用菜单。
  5. 将警报或通知中的响应数据显示为 Toast。

我正在使用react-native-ble-manager。

过程:在将允许读取的特征设置为通知后,我使用允许写入的特征发送写入消息。我在用于接收通知的响应侦听器中收到“ack”,然后我开始按设计逐块发送自定义数据块。

我在发送第一个块期间收到此错误。

我已经使用迭代和 to 检查了我的 uint8Array 是否有任何错误数据,但找不到任何数据。

来自我的日志:

2020-09-04 12:52:13.944 21942-22004/com.my_app E/ReactNativeJS: Error: Exception in HostFunction: Malformed calls from JS: field sizes are different.
    
    [[3,13,37],[5,22,0],[["{\"type\":\"log\",\"level\":\"log\",\"data\":[\"payload[18]: \\u0000\"]}",1],[221,100,1599204133919,false]],2453]
react-native bluetooth-lowenergy communication
1个回答
0
投票

我迭代了我的 uint8Array 并获取了中的每个元素 var newArr = [];

我也做了 newArr[i] = newArr[i] & 0xff。

这意味着每个元素应该通过具有相同的大小来确认为 uint8。这个方法就可以做到。删除不需要的溢出,同时保留实际数据。

错误消失了。

© www.soinside.com 2019 - 2024. All rights reserved.