火力基地。 java.lang.RuntimeException: 无法实例化接收器 com.google.android.gms.gcm.GcmReceiver: java.lang.ClassNotFoundException:

Firebase. java.lang.RuntimeException: Unable to instantiate receiver com.google.android.gms.gcm.GcmReceiver: java.lang.ClassNotFoundException:

我尝试通过新的 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"

我什至不知道如何调试这个错误。

我发现崩溃不是来自 firebase,而是来自依赖旧的 firebase 实现的库。 在我的例子中是 'com.yandex.android:mobmetricapushlib:$version'。 使用 'com.google.firebase:firebase-messaging:$project.ext.google_play_services_version' 会导致崩溃。 我决定暂时不使用新的 firebase 库,而是使用 gcm 库来实现它。

我也有这个问题。我刚刚从依赖项中删除了 react-native-push-notification,现在它解决了我的问题。

当 GCM 升级到 Firebase 时出现。

删除 AndroidManifest.xml 中的 com.google.android.gms.gcm.GcmReceiver