【问题标题】:React native App get stuck at launch screen after adding firebase crashlytics?添加firebase crashlytics后,React Native App卡在启动屏幕上?
【发布时间】:2020-09-02 06:38:47
【问题描述】:

我正在开发运行良好的 React 本机应用程序。但是,当我导入 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';

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

感谢您的帮助。

app.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';

index.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);

错误日志

【问题讨论】:

  • 您的 Metro 捆绑器中是否有任何错误?
  • 如果您使用的是启动画面,这可能是启动画面问题,您可以尝试使用此库隐藏/显示启动画面github.com/crazycodeboy/react-native-splash-screen
  • @wahid_abdul Metro bundler 中没有错误,但是当我尝试调试时它显示“无法调试。无法找到 plist 文件来配置调试”
  • @shubhamjha 谢谢..但我可以看到只有当我导入 crashlytics 时才会发生这种情况
  • 你在删除节点模块和使用npm start --reset-cache删除缓存后尝试过吗?

标签: reactjs firebase react-native crashlytics


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 感谢您的帮助..我也尝试过,但仍然遇到同样的错误..也尝试删除并重新安装应用程序
  • 你是否正确配置了 react-native-firebase?
  • 是的,我可以在 firebase 控制台中正确查看 firebase 分析和活动
【解决方案2】:

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

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

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

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

上面的示例代码应该可以正常工作。欲了解更多信息,您可以refer here。考虑在package.json 上检查您的react-native-firebase/crashlytics 的版本。我的项目中有"@react-native-firebase/crashlytics": "^8.1.2",

【讨论】:

  • 即使我删除了 crashlytics 日志.. 还是一样
  • 当您提到“但是当我导入 firebase crashlytics 时,它卡在启动屏幕上如果我再次删除它,应用程序工作正常?”这让我们感到困惑。考虑更正您的问题
  • 你也不需要import crashlyticsindex.js。您可以在app.js 导入和使用它。就像你现在提到的那样,如果你删除了你的应用程序仍然卡住的 crashlytics,请尝试一一删除这些导入以找出导致问题的原因。
  • 抱歉声明令人困惑.. 我的意思是如果我删除 crashlytics.log 声明但保持 import 声明原样.. 它仍然卡住并启动屏幕
  • 我尝试仅在 app.js 中导入它,但仍然出现相同的错误。实际上我尝试了 2 diff。 mac 机器,但两者都一样
【解决方案3】:

我同意 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();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-19
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2020-01-05
    • 1970-01-01
    相关资源
    最近更新 更多