-
Notifications
You must be signed in to change notification settings - Fork 376
Description
What happened?
In my code, I've consistently encountered crashes when using OneSignal APIs after calling OneSignal.initWithContext, specifically receiving the error: java.lang.Exception: Must call 'initWithContext' before use.
I believe this is related to the recent changes in PR #2151, which moved initialization to a background thread. However, there seems to be no clear guidance from OneSignal on how to determine when the SDK has completed initialization and when it's safe to call other APIs.
Relying on developers to wait for an arbitrary period, such as 2 seconds, before invoking OneSignal APIs is not a viable or professional coding practice—this is not something we see in other SDKs. If the initialization is now asynchronous, then the rest of the APIs should also be asynchronous. For instance, APIs could return a result only after initialization has completed.
Overall, I feel the quality of the SDK urgently needs improvement, especially given the frequent crashes introduced since the 5.0 release. Addressing these issues with more robust handling of the initialization process is crucial.
Steps to reproduce?
OneSignal.initWithContext(xxx);
OneSignal.getUser();What did you expect to happen?
The code should not crash
OneSignal Android SDK version
com.onesignal:OneSignal:5.1.21
Android version
14
Specific Android models
No response
Relevant log output
No response
Code of Conduct
- I agree to follow this project's Code of Conduct