使用 react-native-push-notification,App 在收到新的 FCM 通知时崩溃

Posted

技术标签:

【中文标题】使用 react-native-push-notification,App 在收到新的 FCM 通知时崩溃【英文标题】:Using react-native-push-notification, App crashes when receiving new FCM notification 【发布时间】:2019-02-06 07:52:15 【问题描述】:

我试图在 react-native 应用程序上添加推送通知,所以我使用了 react-native-push-notification。库配置进行得很顺利,但是当收到通知时,APP 立即崩溃,说“FirebaseApp 未初始化”。

崩溃报告 androidRuntime:java.lang.IllegalStateException:默认 FirebaseApp 未在此 com.myapp 中初始化。请务必先调用 FirebaseApp.initializeApp(Context)。

如何初始化 FirebaseApp 或解决此问题?任何帮助将不胜感激。

有关更多信息,请参阅已打开的 Github 问题https://github.com/zo0r/react-native-push-notification/issues/852

【问题讨论】:

您在哪里看到这个错误“FirebaseApp 未初始化”。我的应用程序崩溃了,但我不确定在哪里检查日志以找出导致它的原因> 【参考方案1】:

好的!现在可以了。

build.gradle

buildscript 
    dependencies 
        classpath 'com.google.gms:google-services:+'
    

app/build.gradle

// At the very bottom of the file
apply plugin: 'com.google.gms.google-services'

信用https://github.com/zo0r/react-native-push-notification/issues/852#issuecomment-417641675

【讨论】:

不修复 google-services 的版本可能(并且对我们而言)会导致将来出现问题。最好像这样修复版本:classpath 'com.google.gms:google-services:4.2.0'【参考方案2】:

当我将我的 AndroidManifest.xml 更改为时它工作了

    <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<application ....>
    <!-- Change the value to true to enable pop-up for in foreground on receiving remote notifications (for prevent duplicating while showing local notifications set this to false) -->
    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_foreground"
                android:value="false"/>
    <!-- Change the resource name to your App's accent color - or any other color you want -->
    <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
                android:resource="@color/white"/> <!-- or @android:color/name to use a standard color -->

    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" />
    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
    <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
        </intent-filter>
    </receiver>

    <service
        android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

【讨论】:

以上是关于使用 react-native-push-notification,App 在收到新的 FCM 通知时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)