Sobald ich das Flattern auf Version 1.12.13 aktualisiert habe, habe ich dieses Problem gefunden und kann es nicht beheben. Ich habe als das Tutorial firebase_messaging gesendet und den folgenden Fehler erhalten: "Fehler: Inkompatible Typen: PluginRegistry kann nicht in FlutterEngine GeneratedPluginRegistrant.registerWith (Registrierung) konvertiert werden;" Mein Code lautet wie folgt:
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;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;
public class Application extends FlutterApplication implements PluginRegistrantCallback {
@Override
public void onCreate() {
super.onCreate();
FlutterFirebaseMessagingService.setPluginRegistrant(this);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
NotificationChannel channel = new NotificationChannel("messages","Messages", NotificationManager.IMPORTANCE_LOW);
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(channel);
}
}
@Override
public void registerWith(PluginRegistry registry) {
GeneratedPluginRegistrant.registerWith(registry);
}
}
firebase
flutter
firebase-cloud-messaging
flutter-dependencies
Gabriel G. Pavan
quelle
quelle
Antworten:
Aktualisiert am 31. Dezember 2019.
Sie sollten das Firebase Cloud Messaging-Tool nicht zum Senden von Benachrichtigungen verwenden, da Sie gezwungen sind, Titel und Text zu verwenden.
Sie müssen eine Benachrichtigung ohne Titel und Text senden. Habe die Anwendung im Hintergrund, die für dich funktionieren sollte.
Wenn es für Sie funktioniert, würde ich es begrüßen, wenn Sie mir über diese Antwort abstimmen könnten, danke.
Ich habe eine vorübergehende Lösung gefunden. Ich bin nicht sicher, ob dies die beste Lösung ist, aber meine Plugins funktionieren wie erwartet und ich gehe davon aus, dass das Problem bei der Registrierung von io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService in Zeile 164 liegen muss.
Meine AndroidManifest.xml-Datei:
Meine Application.java
Meine FirebaseCloudMessagingPluginRegistrant.java
Benachrichtigung in Dart senden:
Ich habe eine Wartezeit von 5 Sekunden hinzugefügt, damit Sie die Anwendung in den Hintergrund stellen und überprüfen können, ob die Nachricht im Hintergrund ausgeführt wird
quelle
Eine Portierung des DomingoMG-Codes für Kotlin finden Sie unten. Getestet und im März 2020 arbeitend.
pubspec.yaml
Application.kt
FirebaseCloudMessagingPluginRegistrant.kt
quelle
Ersetzen Sie Ihre folgende Codezeile:
mit diesem:
quelle
Vergessen Sie nicht, zusätzlich zur Antwort von DomingoMG zu entfernen
aus der Hauptaktivitätsdatei unter dem Android-Ordner. Wenn nicht, erhalten Sie eine Fehlermeldung.
quelle
Ich habe nur Wasserklasse als Extra aus den Schritten im Firebase Messaging-Paket hinzugefügt und es wurde gelöst:
quelle