android - MissingPluginException(在通道 dexterous.com/flutter/local_notifications 上找不到方法初始化的实现)
问题描述
我正在尝试设置最基本版本的颤振本地通知,但我不断收到此错误
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: MissingPluginException(No implementation found for method initialize on channel dexterous.com/flutter/local_notifications)
查看我的自动生成的插件注册者 java 文件时
package io.flutter.plugins;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import io.flutter.embedding.engine.FlutterEngine;
/**
* Generated file. Do not edit.
* This file is generated by the Flutter tool based on the
* plugins that support the Android platform.
*/
@Keep
public final class GeneratedPluginRegistrant {
public static void registerWith(@NonNull FlutterEngine flutterEngine) {
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.firestore.FlutterFirebaseFirestorePlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.auth.FlutterFirebaseAuthPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.core.FlutterFirebaseCorePlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.firebasedynamiclinks.FirebaseDynamicLinksPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.firebase.storage.FlutterFirebaseStoragePlugin());
flutterEngine.getPlugins().add(new com.byneapp.flutter_config.FlutterConfigPlugin());
flutterEngine.getPlugins().add(new app.meedu.flutter_facebook_auth.FlutterFacebookAuthPlugin());
flutterEngine.getPlugins().add(new com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin());
flutterEngine.getPlugins().add(new io.flutter.plugins.googlesignin.GoogleSignInPlugin());
}
}
我发现该插件似乎已注册。那么为什么它会抛出错误呢。这是我使用的代码
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
class FirebaseMessagingProvider extends PushNotificationProvider {
final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
FirebaseMessagingProvider() {
initializeLocalNotifications();
}
Future<void> initializeLocalNotifications() async {
const AndroidInitializationSettings initializationSettingsAndroid =
AndroidInitializationSettings('app_icon');
const AndroidNotificationChannel channel = AndroidNotificationChannel(
'high_importance_channel', // id
'High Importance Notifications', // title
'This channel is used for important notifications.', // description
importance: Importance.max,
);
final InitializationSettings initializationSettings =
InitializationSettings(android: initializationSettingsAndroid);
await flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: (_) async => print("notified"));
await flutterLocalNotificationsPlugin
.resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()
?.createNotificationChannel(channel);
}
}
在这一行抛出错误
await flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: (_) async => print("notified"));
我查看了以下 github 问题
https://github.com/MaikuB/flutter_local_notifications/issues/238
但它似乎主要针对flutter 1项目,您必须自己注册插件。我确实尝试过 application.kt 但它不起作用。
那么为什么会出现这个错误呢?
Flutter 版本:Flutter 2.2.0 • 频道稳定 • https://github.com/flutter/flutter.git flutter_local_notifications: ^6.0.0
解决方案
推荐阅读
- talend - Talend:匹配 2 个列并仅显示这些值匹配的行
- qt - 有没有办法在 qml 中以字符串格式获取其 id 的组件?
- angular - VSTS Build CI 给出错误安装角度 ##[error]Bash exited with code '243'
- android - SQLite 如何将列的所有字符串内容添加到单个字符串(带条件)
- php - 尝试导入文件
- android - Retrofit2:将 post 参数添加到拦截器中
- python - Flask 应用程序中的子资源完整性
- azure-active-directory - Azure AD B2C 序列化 cookie 中的 StringCollection 声明
- python - 以 minio 作为后端的 Django-Storages S3
- javascript - React 应用程序上的响应式布局