- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我的 Flutter 应用程序中尝试云消息传递,但我总是遇到错误,而且我还没有找到解决方案。我按照此处所述的步骤操作:firebase_messaging
如果我按照可选部分以外的步骤为后台消息创建 Application.java 文件,并且我从 Firebase 向启动的应用程序发送测试消息,我会收到此错误:
java.lang.RuntimeException: Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeException: PluginRegistrantCallback is not set.
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3577)
at android.app.ActivityThread.access$1400(ActivityThread.java:200)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1689)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
E/AndroidRuntime(29468): Caused by: java.lang.RuntimeException: PluginRegistrantCallback is not set.
at io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.startBackgroundIsolate(FlutterFirebaseMessagingService.java:157)
at io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.onCreate(FlutterFirebaseMessagingService.java:77)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3565)
java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.Application android.app.Activity.getApplication()' on a null object reference
at com.github.adee42.keyboardvisibility.KeyboardVisibilityPlugin.registerWith(KeyboardVisibilityPlugin.java:107)
at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:22)
at io.flutter.plugins.Application.registerWith(Application.java:18)
at io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService.startBackgroundIsolate(FlutterFirebaseMessagingService.java:164)
at io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.onMethodCall(FirebaseMessagingPlugin.java:133)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:222)
at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:96)
at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:656)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:165)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
[ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'android.app.Application android.app.Activity.getApplication()' on a null object reference, null)
StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:316:33)
<asynchronous suspension>
FirebaseMessaging.configure (package:firebase_messaging/firebase_messaging.dart:118:16)
main (package:vonatles/main.dart:18:22)
_AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:43:6)
main (package:vonatles/main.dart:12:10)
_runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:229:25)
_rootRun (dart:async/zone.dart:1124:13)
_CustomZone.run (dart:async/zone.dart:1021:19)
_runZoned (dart:async/zone.dart:1516:10)
runZoned (dart:async/zone.dart:1500:12)
_runMainZoned.<anonymous closure> (dart:ui/hooks.dart:221:5)
_startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:305:19)
_RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)
firebase_core: ^0.4.0+1
firebase_database: 3.0.7
firebase_messaging: 5.1.5
classpath 'com.android.tools.build:gradle:3.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.0"
classpath 'com.google.gms:google-services:4.3.0'
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
},
);
package io.flutter.plugins;
import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;
public class Application extends FlutterApplication implements PluginRegistrantCallback {
@Override
public void onCreate() {
super.onCreate();
FlutterFirebaseMessagingService.setPluginRegistrant(this);
}
@Override
public void registerWith(PluginRegistry registry) {
GeneratedPluginRegistrant.registerWith(registry);
}
}
-main
-java
-io.flutter.plugins
Apllication.java
GeneratedPluginRegistrant.java
-kotlin
-my.package.name
MainActivity.kt
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.package.name">
<application
android:name="io.flutter.plugins.Application"
android:label="mylabel"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
...
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
最佳答案
由于我在 android 中的 MainActivity 是一个 Kotlin 类,当我将 Application 类作为 Kotlin 类而不是作为 Java 类尝试时,我得到了这个问题的解决方案。
我尝试了很多解决方案,但仍然无法运行该应用程序。
应用程序.kt
package YOUR_PACKAGE_NAME
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
public class Application: FlutterApplication(), PluginRegistrantCallback {
override fun onCreate() {
super.onCreate()
FlutterFirebaseMessagingService.setPluginRegistrant(this)
}
override fun registerWith(registry: PluginRegistry) {
FirebaseCloudMessagingPluginRegistrant.registerWith(registry)
}
}
此外,FirebaseCloudMessagingPluginRegistrant.kt
package YOUR_PACKAGE_NAME
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin
class FirebaseCloudMessagingPluginRegistrant {
companion object {
fun registerWith(registry: PluginRegistry) {
if (alreadyRegisteredWith(registry)) {
return;
}
FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"))
}
fun alreadyRegisteredWith(registry: PluginRegistry): Boolean {
val key = FirebaseCloudMessagingPluginRegistrant::class.java.name
if (registry.hasPlugin(key)) {
return true
}
registry.registrarFor(key)
return false
}
}
}
这可以添加到您的 MainActivity 所在的示例目录中。
关于Flutter firebase_message 插件设置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57891871/
我正在使用 firebase_messaging 当通知到来时,我正在显示警报对话框。下面是我的代码。 showNotification(BuildContext context) { _fi
我想在我的应用程序处于后台时显示推送通知。 我正在使用 flutter_local_notifications包和 firebase_messaging包。 推送通知与 firebase_messag
我想在我的 Flutter 应用程序中尝试云消息传递,但我总是遇到错误,而且我还没有找到解决方案。我按照此处所述的步骤操作:firebase_messaging 如果我按照可选部分以外的步骤为后台消息
我已经让 firebase_messaging 9.1.0 接收并显示我的 Android 和 iOS 应用程序在前台、后台和关闭时的通知。但是在 iOS 上,后台处理程序 future 似乎没有执行
我集成了firebase_messaging v5.1.6使用自述文件中提到的带有“处理后台消息”选项的我的 flutter 应用程序。 这是我的文件的外观。 我的应用程序.kt class MyAp
解释问题: 我现在已经尝试让 firebase_messaging 工作近一周。 我成功设置了一个旧版 Xcode APNS 应用程序,该应用程序在生成所有新证书等后工作。 但是使用 firebase
如标题所示,当用户在应用程序终止时单击通知时,为了接收自定义数据,当前的解决方法是什么? 看起来像在 Android 上 is not possible在 onLaunch 中接收数据消息(这是理想的
我遇到了 Firebase 消息传递 ( https://pub.dev/packages/firebase_messaging ) 的问题。将此添加到项目后,我无法在 IOS 中构建。 我试过: f
我正在尝试让我的应用程序向用户发送通知,该用户将使用他们的默认通知声音提醒他们。 到目前为止,我正在使用插件 firebase_messaging使用以下代码: Message firebaseMes
我今天已经升级了我所有的 firebase 软件包,我不得不升级到版本 8.0.0-dev.13 以进行 firebase 消息传递,即使由于依赖问题它仍在开发中。在 Application.Java
这是来自 vscode 的日志 Launching lib/main.dart on iPhone 11 in debug mode... Running pod install...
我正在尝试在 ios 上运行我的 flutter 应用程序,但我收到此错误 /ios/Runner/GeneratedPluginRegistrant.m:6:9: 'firebase_messagi
我正在开发一个 flutter 应用程序。我使用 Firestore Clound、Firebase 身份验证等。一切正常,直到我将 firebase_messaging 添加到 pubspec.ya
我正在尝试设置 firebase_messaging plugin for flutter .android 端的 firebase 设置似乎运行正常。但是当我将插件添加到我的 pubspec.yam
当应用在前景时,我会收到通知,而不是在后台应用程序时收到通知。另外,我有2个小时或更长时间的Google-ed/stackoverflow-ed,但能够解决这个问题。 My Configuration
当我尝试使用这些命令进行 android 构建时 yarn run android或 react-native run-android然后我已经显示了这个错误。请帮助 mw 解决此错误。 这是 pac
我正在尝试集成 firebase_messaging与我的 flutter 应用程序一起打包。通常它适用于我正在使用的代码(版本 7.0.3)(见下文),但由于发布了空安全版本,我的代码不再工作。我想
我在 StackOverflow 和 Github 上遇到过很多这样的问题,但我还没有找到答案。 我有一个 Apple 开发配置文件,并且我已经将 APNs Auth Key 上传到 Firebase
我在 flutter 中卡在自定义 fcm 推送通知上。 实现 借助 pub.dev 上的 firebase_messaging 示例代码,我能够在我的应用程序表单 firebase 控制台中发送通知
遵循 https://github.com/flutter/plugins/tree/master/packages/firebase_messaging 的自述文件我设置了 IOS 和 Androi
我是一名优秀的程序员,十分优秀!