My app is crashes/terminate when try to init or setAppId id for OneSignal
flutter doctor
> Doctor summary (to see all details, run flutter doctor -v): [√]
> Flutter (Channel stable, 3.3.8, on Microsoft Windows [Version
> 10.0.19045.2251], locale en-US) Checking Android licenses is taking an unexpectedly long time...[√] Android toolchain - develop for Android
> devices (Android SDK version 30.0.3) [√] Chrome - develop for the web
> [X] Visual Studio - develop for Windows
> X Visual Studio not installed; this is necessary for Windows development.
> Download at https://visualstudio.microsoft.com/downloads/.
> Please install the "Desktop development with C++" workload, including all of its default components [√] Android Studio (version
> 2021.3) [√] VS Code (version 1.73.1) [√] Connected device (4 available) [√] HTTP Host Availability
I'm use last version from OneSignal
onesignal_flutter: ^3.5.0
and use last compileSdkVersion
compileSdkVersion 33
here my flutter code
static void _initOneSignal() async {
// The promptForPushNotificationsWithUserResponse function will show the iOS push notification prompt. We recommend removing the following code and instead using an In-App Message to prompt for notification permission
await OneSignal.shared
.promptUserForPushNotificationPermission(fallbackToSettings: true);
//Remove this method to stop OneSignal Debugging
if (kDebugMode)
OneSignal.shared.setLogLevel(OSLogLevel.verbose, OSLogLevel.none);
OneSignal.shared.setAppId("${AppConstant.oneSignalId}");
// The promptForPushNotificationsWithUserResponse function will show the iOS push notification prompt. We recommend removing the following code and instead using an In-App Message to prompt for notification permission
OneSignal.shared.promptUserForPushNotificationPermission().then((accepted) {
debugPrint("Accepted permission: $accepted");
});
}
NOTE : when run app without calling _initOneSignal() function, application work normally
when try to run app on android 13 throw this error and app closed
E/AndroidRuntime(11728): FATAL EXCEPTION: main
E/AndroidRuntime(11728): Process: com.band.amazfitband7, PID: 11728
E/AndroidRuntime(11728): java.lang.ExceptionInInitializerError
E/AndroidRuntime(11728): at com.onesignal.OneSignal.promptForPushNotifications(OneSignal.java:2864)
E/AndroidRuntime(11728): at com.onesignal.flutter.OneSignalPlugin.promptPermission(OneSignalPlugin.java:282)
E/AndroidRuntime(11728): at com.onesignal.flutter.OneSignalPlugin.onMethodCall(OneSignalPlugin.java:158)
E/AndroidRuntime(11728): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262)
E/AndroidRuntime(11728): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295)
E/AndroidRuntime(11728): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
E/AndroidRuntime(11728): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
E/AndroidRuntime(11728): at android.os.Handler.handleCallback(Handler.java:942)
E/AndroidRuntime(11728): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(11728): at android.os.Looper.loopOnce(Looper.java:201)
E/AndroidRuntime(11728): at android.os.Looper.loop(Looper.java:288)
E/AndroidRuntime(11728): at android.app.ActivityThread.main(ActivityThread.java:7872)
E/AndroidRuntime(11728): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(11728): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/AndroidRuntime(11728): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
E/AndroidRuntime(11728): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
E/AndroidRuntime(11728): at com.onesignal.OSUtils.getTargetSdkVersion(OSUtils.java:490)
E/AndroidRuntime(11728): at com.onesignal.NotificationPermissionController.<clinit>(NotificationPermissionController.kt:48)
The application crashes if you call methods during initialization in the following sequence:
OneSignal.shared.setLogLevel(config.logLevel, config.visualLevel);
OneSignal.shared.promptUserForPushNotificationPermission(fallbackToSettings: true);
OneSignal.shared.setAppId(config.appId);
Method calls must be clearly in this order to solve the problem:
OneSignal.shared.setLogLevel(config.logLevel, config.visualLevel);
OneSignal.shared.setAppId(config.appId);
OneSignal.shared.promptUserForPushNotificationPermission(fallbackToSettings: true);