添加 firebase crashlytics 后,React 本机应用程序卡在启动屏幕上?

IT技术 reactjs firebase react-native crashlytics
2021-05-03 07:43:56

我正在开发运行良好的 React Native App。但是当我导入 firebase crashlytics 时,如果我再次删除它,它会卡在启动屏幕上,应用程序工作正常吗?

由于我是新手,我无法找到此问题的根本原因?

我正在尝试在 index.js 中导入 crashlytics 如下

    //import '@react-native-firebase/crashlytics'
    or 
    //import {crashlytics} from '@react-native-firebase/crashlytics';
    or
    import crashlytics from '@react-native-firebase/crashlytics';

请提出根本原因、解决方案或解决此问题的方法。如果需要更多信息来理解这个问题,请告诉我。

谢谢你的帮忙。

应用程序.js

import React from "react"
import { YellowBox } from 'react-native';
import { View } from 'react-native';
import { Root } from "native-base"
import UserInactivity from 'react-native-user-inactivity';

import { Provider } from 'mobx-react';
import SplashScreen from 'react-native-splash-screen';
import AppNavigatorRoot, { AppNavigationUtils } from "src/routers/navigations";
import store from 'src/store/';
import Loading from 'src/components/loading';
import Dialog from 'src/components/dialog';
import OAuthAPI from 'src/api/oauth';
import * as CoreConfig from 'src/config/config';
import HocErrorCatch from 'src/common/error';

索引.js

import {AppRegistry} from 'react-native';
import App from './App';
// import {name as appName} from './app.json';
//import '@react-native-firebase/crashlytics'

//import {  } from '@react-native-firebase/crashlytics';
//import crashlytics from '@react-native-firebase/crashlytics';



AppRegistry.registerComponent("xyz", () => App);

错误日志

在此处输入图片说明

3个回答

您尝试导入包的方式不正确。你应该像这样导入它

import crashlytics from '@react-native-firebase/crashlytics';

然后您可以使用crashlytics 和记录任何事件。

这是文档链接希望这能解决问题。

OP 编辑​​问题后,此答案不再有效。

我认为纯粹导入 Crashlytics 不会让您的应用卡在启动画面上。我认为您一定在启动屏幕上进行了一些 crashlytics 调用,因为您提到删除它会使应用程序再次运行。

我想您正在使用 RNFirebase v6。因此,请考虑执行以下操作:

import crashlytics from '@react-native-firebase/crashlytics';

componentDidMount(){
crashlytics().log('App started.');
}

上面的示例代码应该可以正常工作。有关更多信息,您可以参考此处考虑到检查的版本react-native-firebase/crashlyticspackage.json为好。"@react-native-firebase/crashlytics": "^8.1.2",在我的项目中。

我同意 TommyLeong 提出的这一点

我认为纯粹导入 Crashlytics 不会让您的应用卡在启动画面


为了快速修复安装,请react-native-splash-screen
在里面使用此代码App.js,它应该可以解决问题

     import SplashScreen from 'react-native-splash-screen';
    
    
    // inside useEffect or componentDidMount whichever you prefer
    componentDidMount() {
            // do stuff while splash screen is shown
            // After having done stuff (such as async tasks) hide the splash screen
            SplashScreen.hide();
    }