我尝试通过新的Firebase GCM实施实现推送通知。 这很简单:
<service
android:name=".services.MyMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service
android:name=".services.MyInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
但这些服务也不是必需的。 当然,我在build.gradle结束时插入了用于生成GCM类代码的gradle插件: 申请插件:'com.google.gms.google-services' 并在项目gradle文件中有这个:
dependencies {
classpath 'com.google.gms:google-services:3.1.0'
}
当我启动应用程序并尝试从firebase向应用程序发送通知时,它会因奇怪的反射错误而崩溃。
java.lang.RuntimeException: Unable to instantiate receiver com.google.android.gms.gcm.GcmReceiver: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.gcm.GcmReceiver"
我甚至不知道如何调试此错误。
答案 0 :(得分:2)
我发现崩溃不是来自firebase,而是来自库依赖于firebase的旧实现。 在我的情况下是'com.yandex.android:mobmetricapushlib:$version'。 使用“com.google.firebase:firebase-messaging:$ project.ext.google_play_services_version”会导致崩溃。 我决定不使用新的firebase库并用gcm库实现它。
答案 1 :(得分:0)
我也有这个问题。我刚刚从依赖项中删除了react-native-push-notification,现在它解决了我的问题。