关闭互联网时检查崩溃react-native android

时间:2018-03-26 14:48:35

标签: javascript reactjs react-native react-native-android react-native-ios

我在本机应用中遇到了一个非常有趣的问题。我有一个几乎完全开发的项目。现在的问题是,一旦互联网关闭,Android应用程序崩溃,这在iOS中并非如此。这就是我在Crashlytics上遇到的崩溃 -

Fatal Exception: com.facebook.react.common.JavascriptException: undefined is not a function (evaluating 'n({type:e.connectionType,effectiveType:e.effectiveConnectionType})'), stack:
<unknown>@287:358
value@32:1366
value@18:3177
<unknown>@18:911
value@18:2606
value@18:883

       at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:56)
       at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:40)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:374)
       at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:162)
       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:31)
       at android.os.Looper.loop(Looper.java:155)
       at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:194)
       at java.lang.Thread.run(Thread.java:818)

在调试时,我在Android上获得了红色叠加层,因此任何人都可以建议如何找到崩溃的根本原因。对于初学者,我可以看到该项目已经使用了两者

NetInfo.isConnected.addEventListener(
            'connectionChange',
            this.connectivityChangeListener
        );

在某些地方和某些地方

let isConnected = await NetInfo.isConnected.fetch();

检测网络连接。

1 个答案:

答案 0 :(得分:0)

试试这个,

NetInfo.getConnectionInfo().then((connectionInfo) => {
  console.log('Initial, type: ' + connectionInfo.type + ', effectiveType: ' + connectionInfo.effectiveType);
});

function handleFirstConnectivityChange(connectionInfo) {
  console.log('First change, type: ' + connectionInfo.type + ', effectiveType: ' + connectionInfo.effectiveType);
  NetInfo.removeEventListener(
    'connectionChange',
    handleFirstConnectivityChange
  );
}

//像这样使用它,

NetInfo.addEventListener(
  'connectionChange',
  handleFirstConnectivityChange
);