簡體   English   中英

java.lang.RuntimeException:無法創建服務 io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

[英]java.lang.RuntimeException: Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

我正在使用 Firebase Cloud Messaging 在 Flutter 應用程序中使用 node.js + Typescript 推送通知。

onLaunch 和 onResume 的 FCM 配置工作正常,直到我添加了 Firebase 動態鏈接。 現在,每次我收到通知時,應用程序都會崩潰。

我也在通知負載中包含了 click_action: 'FLUTTER_NOTIFICATION_CLICK' 。

我沒有 Application.java 文件,我使用的是 Flutter Android Embedding V2 (Flutter Version >= 1.12),因此Android 不需要額外的集成步驟

錯誤:

D/AndroidRuntime(14785):關閉 VM E/AndroidRuntime(14785):致命異常:main E/AndroidRuntime(14785):進程:com.muffly,PID:14785 E/AndroidRuntime(14785):java.lang.RuntimeException:無法創建服務 io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService:java.lang.RuntimeException:未設置 PluginRegistrantCallback。 E/AndroidRuntime(14785): at android.app.ActivityThread.handleCreateService(ActivityThread.java:4043) E/AndroidRuntime(14785): at android.app.ActivityThread.access$1600(ActivityThread.java:229) E/AndroidRuntime(14785 ): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1917) E/AndroidRuntime(14785): at android.os.Handler.dispatchMessage(Handler.java:107) E/AndroidRuntime(14785): at android .os.Looper.loop(Looper.java:226) E/AndroidRuntime(14785): at android.app.ActivityThread.main(ActivityThread.java:7592) E/AndroidRuntime(14785): at 88213246lang945888.5888. .invoke(Native Method) E/AndroidRuntime(14785): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) E/AndroidRuntime(14785): at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:950) E/AndroidRuntime(14785): Caused b y:java.lang.RuntimeException:未設置 PluginRegistrantCallback。 E/AndroidRuntime(14785): at io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.startBackgroundIsolate(FlutterFirebaseMessagingService.java:157) E/AndroidRuntime(14785): at io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.onCreate(FlutterFirebaseMessagingService.java:77) E/ AndroidRuntime(14785): 在 android.app.ActivityThread.handleCreateService(ActivityThread.java:4031) E/AndroidRuntime(14785): ... 8 更多 D/OOMEventManagerFK(14785): checkEventAndDumpForJE: 0 I/Process (14785): 發送信號。 PID:14785 SIG:9

pubspec.yaml

firebase_core: ^0.5.0

firebase_auth: ^0.18.4+1

firebase_messaging: ^7.0.0-dev.15

firebase_dynamic_links:^0.5.0+11

firebase_core: ^0.5.0

AndroidManifest.xml

            <meta-data
                android:name="com.google.firebase.messaging.default_notification_icon"
                android:resource="@mipmap/ic_launcher" />

            <meta-data
                android:name="com.google.firebase.messaging.default_notification_channel_id"
                android:value="high_importance_channel" />

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>

            <intent-filter>
                <action android:name="FLUTTER_NOTIFICATION_CLICK" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <!-- Accepts URIs that begin with YOUR_SCHEME://YOUR_HOST -->
                <data
                    android:scheme="https"
                    android:host="muffly.page.link" />
            </intent-filter>


MainActivity.kt旁邊創建一個單獨的文件並將其命名為Application.kt並在其中鍵入以下代碼。

//Don't forget to change it to your app package name!!!
package com.your.packagename

import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.setPluginRegistrant

class Application : FlutterApplication(), PluginRegistrantCallback {

  override fun onCreate() {
    super.onCreate()
    setPluginRegistrant(this)

  }

  override fun registerWith(registry: PluginRegistry?) {
    FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
  }
}

然后,在您的AndroidMainfest.xml android:name=".Application"添加到您的application標簽

 <application
  ...
  android:name=".Application"

  >

最后,將firebase-messaging添加到您的app/build.gradle

dependencies {
    ...
    implementation "com.google.firebase:firebase-messaging:20.1.0"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM