MaikuB / flutter_local_notifications

A Flutter plugin for displaying local notifications on Android, iOS, macOS and Linux
2.44k stars 1.39k forks source link

PlatformException(error, Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference, null) #403

Closed riccardocalligaro closed 4 years ago

riccardocalligaro commented 4 years ago

When I try to show a notification this happens:

E/flutter ( 5468): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference, null)
E/flutter ( 5468): #0      StandardMethodCodec.decodeEnvelope 
package:flutter/…/services/message_codecs.dart:569
E/flutter ( 5468): #1      MethodChannel.invokeMethod 
package:flutter/…/services/platform_channel.dart:321
E/flutter ( 5468): <asynchronous suspension>
E/flutter ( 5468): #2      FlutterLocalNotificationsPlugin.show 
package:flutter_local_notifications/src/flutter_local_notifications.dart:120
E/flutter ( 5468): #3      _HomePageState.build.<anonymous closure> 
package:registro_elettronico/…/home/home_page.dart:180
E/flutter ( 5468): #4      _InkResponseState._handleTap 
package:flutter/…/material/ink_well.dart:706
E/flutter ( 5468): #5      _InkResponseState.build.<anonymous closure> 
package:flutter/…/material/ink_well.dart:789
E/flutter ( 5468): #6      GestureRecognizer.invokeCallback 
package:flutter/…/gestures/recognizer.dart:182
E/flutter ( 5468): #7      TapGestureRecognizer.handleTapUp 
package:flutter/…/gestures/tap.dart:486
E/flutter ( 5468): #8      BaseTapGestureRecognizer._checkUp 
package:flutter/…/gestures/tap.dart:264
E/flutter ( 5468): #9      BaseTapGestureRecognizer.acceptGesture 
package:flutter/…/gestures/tap.dart:236
E/flutter ( 5468): #10     GestureArenaManager.sweep 
package:flutter/…/gestures/arena.dart:156
E/flutter ( 5468): #11     GestureBinding.handleEvent 
package:flutter/…/gestures/binding.dart:222
E/flutter ( 5468): #12     GestureBinding.dispatchEvent 
package:flutter/…/gestures/binding.dart:198
E/flutter ( 5468): #13     GestureBinding._handlePointerEvent 
package:flutter/…/gestures/binding.dart:156
E/flutter ( 5468): #14     GestureBinding._flushPointerEventQueue 
package:flutter/…/gestures/binding.dart:102
E/flutter ( 5468): #15     GestureBinding._handlePointerDataPacket 
package:flutter/…/gestures/binding.dart:86
E/flutter ( 5468): #16     _rootRunUnary  (dart:async/zone.dart:1138:13)
E/flutter ( 5468): #17     _CustomZone.runUnary  (dart:async/zone.dart:1031:19)
E/flutter ( 5468): #18     _CustomZone.runUnaryGuarded  (dart:async/zone.dart:933:7)

Code:

onPressed: () {
FlutterLocalNotificationsPlugin notifications =
    FlutterLocalNotificationsPlugin();
var androidPlatformChannelSpecifics =
    AndroidNotificationDetails(
        'new-notification',
        'Notification',
        'Notification test.');
var iOSPlatformChannelSpecifics =
    IOSNotificationDetails();
var platformChannelSpecifics =
    NotificationDetails(
        androidPlatformChannelSpecifics,
        iOSPlatformChannelSpecifics);
notifications.show(
  1,
  'Title',
  'Description',
  platformChannelSpecifics,
);
}

Flutter doctor:

[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.18362.476], locale en-GB)
• Flutter version 1.12.13+hotfix.5 at C:\Users\Riccardo\Documents\dev-tools\flutter
• Framework revision 27321ebbad (13 days ago), 2019-12-10 18:15:01 -0800
• Engine revision 2994f7e1e6
• Dart version 2.7.0  

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)                                            
• Android SDK at C:\Users\Riccardo\AppData\Local\Android\sdk                                                            
• Android NDK location not configured (optional; useful for native profiling support)                                   
• Platform android-29, build-tools 29.0.2                                                                               
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java                                                  
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)                                           
• All Android licenses accepted.                                                                                                                                                                                                           

[√] Android Studio (version 3.5)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 41.1.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] VS Code (version 1.41.1)
• VS Code at C:\Users\Riccardo\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.7.1                   
MaikuB commented 4 years ago

Make sure to setup your notification drawable and specify it as part of initialisation or on a per notification basis. These are mentioned in the readme and there's an example app that can be referred to in this repo as well

nashihu commented 4 years ago

for anyone who gets the error, you probably should type var initializationSettingsAndroid = AndroidInitializationSettings('mipmap/ic_launcher'); instead of var initializationSettingsAndroid = AndroidInitializationSettings('app_icon'); from example main.dart line 46

var initializationSettingsAndroid = AndroidInitializationSettings('app_icon');
  var initializationSettingsIOS = IOSInitializationSettings(
      onDidReceiveLocalNotification:
          (int id, String title, String body, String payload) async {
    didReceiveLocalNotificationSubject.add(ReceivedNotification(
        id: id, title: title, body: body, payload: payload));
  });
markst commented 4 years ago

For me it was simply passing no AndroidNotificationDetails argument to NotificationDetails.