У меня проблемы с локальными уведомлениями по флаттеру. Я использую flutter_local_notifications для отображения локальных уведомлений.
У меня есть приложение флаттера, которое было добавлено в собственное приложение Android. Уведомления могут появляться при запуске приложения флаттера, но не отображаются при запуске приложения флаттера с собственным Android.
. Это локальный класс уведомлений, который я использую.
class _NotificationKeys {
static const channelId = "notification.channel.id";
static const channelName = "notification.channel.name";
static const channelDescription = "notification.channel.desc";
}
class LocalNotification {
LocalNotification._privateConstructor() {
var initializationSettingsAndroid =
new AndroidInitializationSettings('@mipmap/ic_launcher');
var initializationSettingsIOS = new IOSInitializationSettings();
var initializationSettings = new InitializationSettings(
initializationSettingsAndroid, initializationSettingsIOS);
_flutterLocalNotificationsPlugin = new FlutterLocalNotificationsPlugin();
_flutterLocalNotificationsPlugin.initialize(initializationSettings,
onSelectNotification: _onSelectNotification);
}
static final LocalNotification instance =
LocalNotification._privateConstructor();
FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin;
List<Function(String payload)> _listeners = [];
void addListener(Function(String payload) function) {
_listeners.add(function);
}
Future _onSelectNotification(String payload) async {
_listeners.forEach((function) {
function(payload);
});
}
Future showNotificationWithDefaultSound(
int id, String title, String body, String payload) async {
var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
_NotificationKeys.channelId,
_NotificationKeys.channelName,
_NotificationKeys.channelDescription,
importance: Importance.Max,
priority: Priority.High);
var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
var platformChannelSpecifics = new NotificationDetails(
androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await _flutterLocalNotificationsPlugin.show(
id,
title,
body,
platformChannelSpecifics,
payload: payload,
);
}
}
Это ошибка, которую я получил после вызова _flutterLocalNotificationsPlugin.show
.
Attempt to invoke virtual method 'java.lang.String java.lang.Class.getName()' on a null object reference
Это трассировка стека.
StandardMethodCodec.decodeEnvelope (message_codecs.dart:569)
MethodChannel._invokeMethod (platform_channel.dart:156)
<asynchronous gap>
MethodChannel.invokeMethod (platform_channel.dart:329)
AndroidFlutterLocalNotificationsPlugin.show (platform_flutter_local_notifications.dart:137)
FlutterLocalNotificationsPlugin.show (flutter_local_notifications_plugin.dart:136)
LocalNotification.showNotificationWithDefaultSound (local_notification.dart:49)
Я искал эту проблему в репозитории flutter_local_notifications, но не найдено никаких результатов. Если вы найдете решение этой проблемы, пожалуйста, просветите меня. Спасибо.