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

Abh*_*ena 5 communication bluetooth-lowenergy react-native

我已经浏览过链接: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]
Run Code Online (Sandbox Code Playgroud)

Abh*_*ena 1

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

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

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

错误消失了。