![](/img/trans.png)
[英]java.lang.RuntimeException: Unable to instantiate activity in Flutter
[英]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.