【问题标题】:App crashes with the error INVALID_STATE_ERR应用程序崩溃并出现错误 INVALID_STATE_ERR
【发布时间】:2019-06-04 08:32:08
【问题描述】:

我正在使用本机反应。我在 crashlytics 上遇到错误,错误 INVALID_STATE_ERR。我正在使用 FireBase Crashlytics。我也在使用 MQTT 客户端进行 Web 套接字连接。

我无法弄清楚应用程序崩溃的原因。是由于 MQTT WebSockets 还是由于 javascript 线程上发生的错误?我也没有从堆栈跟踪中得到任何相关消息。 我在下面粘贴我的堆栈跟踪。

    Fatal Exception: com.facebook.react.common.JavascriptException: INVALID_STATE_ERR, stack:
    value@79:1340
    _socket_send@557:21101
    _on_socket_open@557:16408
    <unknown>@557:628
    value@63:1501
    <unknown>@79:4566
    value@32:1363
    value@18:3559
    <unknown>@18:1044
    value@18:2986
    value@18:1016

   at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:54)
   at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:38)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
   at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:160)
   at com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java)
   at android.os.Handler.handleCallback(Handler.java:739)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
   at android.os.Looper.loop(Looper.java:148)
   at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192)
   at java.lang.Thread.run(Thread.java:818)

我能否获得更多见解来解决此问题?

【问题讨论】:

  • 您找到解决方案了吗?我有同样的问题。
  • 你在使用某种重连机制吗?
  • 是的,如果连接失败,我会在延迟一段时间后尝试重新连接。
  • @Aditya 如果您使用的是来自 npm 的 react-native-mqtt 库。请不要使用重新连接机制。它使用指数退避策略,初始时间因子为 2 秒到 128 秒。请不要使用它。

标签: android sockets react-native react-native-mqtt


【解决方案1】:

根据this Wix GitHub issue,是由以下原因引起的:

旧手机上的浏览量过多。 RNN 添加了一些嵌套视图,但看起来我可能有太多了。

那个问题链接到a pull request on React Native's GitHub repo,现在应该合并进去。它提到这个问题是在 API 21 之前的,所以我建议你在以后的 API 上尝试你的代码,看看它是否仍然存在。

无论哪种方式,减少视图(或请求,在这种情况下?)的数量似乎是一个很好的第一步。

【讨论】:

  • 其实这种情况更像是开启飞行模式时,应用程序视图拦截离线模式,但套接字发送一条没有互联网连接的消息并抛出错误
  • 是吗?我只是在问题/拉取请求中找到我能找到的东西,你完全有可能是对的!
  • 这听起来不对。我收到来自 Galaxy S10+ 等新手机的报告。
猜你喜欢
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多