OneSignal-Unity-SDK
OneSignal-Unity-SDK copied to clipboard
[Bug]: WorkManager is not initialized properly.
What happened?
Th latest SDK version 3.0.2 gives me such error: Non-fatal Exception: java.lang.Exception AndroidJavaException : java.lang.IllegalStateException: WorkManager is not initialized properly. You have explicitly disabled WorkManagerInitializer in your manifest, have not manually called WorkManager#initialize at this point, and your Application does not implement Configuration.Provider.
Steps to reproduce?
Install OneSignal SDK
What did you expect to happen?
Not to have this error
Unity version
2020.3.34
OneSignal Unity SDK version
3.0.2
Platform
Android
Relevant log output
androidx.work.impl.WorkManagerImpl.getInstance (androidx.work.impl.WorkManagerImpl)
androidx.work.WorkManager.getInstance (androidx.work.WorkManager)
com.onesignal.OSNotificationRestoreWorkManager.beginEnqueueingWork (com.onesignal.OSNotificationRestoreWorkManager)
com.onesignal.OneSignal.handleActivityLifecycleHandler (com.onesignal.OneSignal)
com.onesignal.OneSignal.init (com.onesignal.OneSignal)
com.onesignal.OneSignal.setAppId (com.onesignal.OneSignal)
com.onesignal.OneSignal.reassignDelayedInitParams (com.onesignal.OneSignal)
com.onesignal.OneSignal.provideUserConsent (com.onesignal.OneSignal)
com.unity3d.player.UnityPlayer.nativeRender (com.unity3d.player.UnityPlayer)
com.unity3d.player.UnityPlayer.access$300 (com.unity3d.player.UnityPlayer)
com.unity3d.player.UnityPlayer$e$1.handleMessage (com.unity3d.player.UnityPlayer$e$1)
android.os.Handler.dispatchMessage (android.os.Handler)
android.os.Looper.loop (android.os.Looper)
com.unity3d.player.UnityPlayer$e.run (com.unity3d.player.UnityPlayer$e)
UnityEngine.AndroidJNISafe.CheckException (UnityEngine.AndroidJNISafe)
UnityEngine.AndroidJavaObject._CallStatic (UnityEngine.AndroidJavaObject)
OneSignalSDK.OneSignalAndroid.set_PrivacyConsent (OneSignalSDK.OneSignalAndroid)
OneSignalInit.ReceivedUserConsent (OneSignalInit)
ConsentSystem.AcceptFullConsent (ConsentSystem)
UnityEngine.Events.UnityAction.Invoke (UnityEngine.Events.UnityAction)
UnityEngine.Events.UnityEvent.Invoke (UnityEngine.Events.UnityEvent)
UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1].Invoke (UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1])
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.EventSystems.ExecuteEvents)
UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchPress (UnityEngine.EventSystems.StandaloneInputModule)
UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchEvents (UnityEngine.EventSystems.StandaloneInputModule)
UnityEngine.EventSystems.StandaloneInputModule.Process (UnityEngine.EventSystems.StandaloneInputModule)
UnityEngine.EventSystems.StandaloneInputModule:Process (UnityEngine.EventSystems)
Code of Conduct
- [X] I agree to follow this project's Code of Conduct
I see the same issue in our Firebase Crashlytics on nova 3i (Android 9). SDK 3.0.2 Unity 2020.3.36f1
Fatal Exception: java.lang.IllegalStateException: WorkManager is not initialized properly. You have explicitly disabled WorkManagerInitializer in your manifest, have not manually called WorkManager#initialize at this point, and your Application does not implement Configuration.Provider.
at androidx.work.impl.WorkManagerImpl.getInstance(WorkManagerImpl.java:158)
at androidx.work.WorkManager.getInstance(WorkManager.java:184)
at com.onesignal.OSNotificationRestoreWorkManager.beginEnqueueingWork(OSNotificationRestoreWorkManager.java:48)
at com.onesignal.OneSignal.handleActivityLifecycleHandler(OneSignal.java:968)
at com.onesignal.OneSignal.init(OneSignal.java:845)
at com.onesignal.OneSignal.setAppId(OneSignal.java:728)
at com.onesignal.OneSignal.reassignDelayedInitParams(OneSignal.java:1174)
at com.onesignal.OneSignal.onRemoteParamSet(OneSignal.java:882)
at com.onesignal.OneSignal$7.complete(OneSignal.java:1115)
at com.onesignal.OneSignalRemoteParams.processJson(OneSignalRemoteParams.java:206)
at com.onesignal.OneSignalRemoteParams.access$100(OneSignalRemoteParams.java:12)
at com.onesignal.OneSignalRemoteParams$1.onSuccess(OneSignalRemoteParams.java:151)
at com.onesignal.OneSignalRestClient$5.run(OneSignalRestClient.java:292)
at java.lang.Thread.run(Thread.java:784)
Still have this error. I tried 3.0.3 and 3.0.4.
Fatal Exception: java.lang.IllegalStateException: WorkManager is not initialized properly. You have explicitly disabled WorkManagerInitializer in your manifest, have not manually called WorkManager#initialize at this point, and your Application does not implement Configuration.Provider. at androidx.work.impl.WorkManagerImpl.getInstance(WorkManagerImpl.java:158) at androidx.work.WorkManager.getInstance(WorkManager.java:184) at com.onesignal.OSNotificationRestoreWorkManager.beginEnqueueingWork(OSNotificationRestoreWorkManager.java:48) at com.onesignal.OneSignal.handleActivityLifecycleHandler(OneSignal.java:975) at com.onesignal.OneSignal.init(OneSignal.java:852) at com.onesignal.OneSignal.setAppId(OneSignal.java:735) at com.onesignal.OneSignal.reassignDelayedInitParams(OneSignal.java:1181) at com.onesignal.OneSignal.onRemoteParamSet(OneSignal.java:889) at com.onesignal.OneSignal$7.complete(OneSignal.java:1122) at com.onesignal.OneSignalRemoteParams.processJson(OneSignalRemoteParams.java:211) at com.onesignal.OneSignalRemoteParams.access$100(OneSignalRemoteParams.java:12) at com.onesignal.OneSignalRemoteParams$1.onSuccess(OneSignalRemoteParams.java:156) at com.onesignal.OneSignalRestClient$5.run(OneSignalRestClient.java:279) at java.lang.Thread.run(Thread.java:780)
How can I fix the issue?
Steps to reproduce:
- Launch the app.
- Close the app.
- Launch it one more time(immidiately).
- Crash happens.
Same, I created one but I guess is the same issue https://github.com/OneSignal/OneSignal-Unity-SDK/issues/558
i am facing this issue with latest Onesignal unity sdk i dont know what to do?

Thanks for reporting, we looking for additional details to narrow down the cause of this issue. Can you fill out the requested details on this Github issue so we can try to find the root cause? https://github.com/OneSignal/OneSignal-Android-SDK/issues/1672
Either create and test "custom WorkManagerInitializer" by yourself, or give us an example script to use in Unity (not in Android Studio). We will test it and will give you results. For you and other people who are facing same crashes.
Either create and test "custom WorkManagerInitializer" by yourself, or give us an example script to use in Unity (not in Android Studio). We will test it and will give you results. For you and other people who are facing same crashes.
How can i create "custom WorkManagerInitializer" in unity at runtime? before One-singnal initialisation.
@toseefhaiderkhansugguu check the link provided by @jkasten2 and ask him once again. As I see more people (like me) don't understand how to fix or at least try to fix the issue.
Has anybody tried to increase the initOrder in the WorkerManagerInitializer? I had not time to test it I guess by adding this piece in the AndroidManifest, then it should be merged.
<provider
android:name="androidx.startup.InitializationProvider"
android:exported="false"
android:initOrder="100"
android:authorities="dk.tactile.beebrilliant.androidx-startup">
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup" />
</provider>
@Martin-Gonzalez90 it doesn't fix the issue.
try to initialize One Signal after all of your app Start methods you will see some improvements, I haven't seen any crashes today but still not satisfied its not a solution :/
@toseefhaiderkhansugguu Thanks for letting us know you can sometimes reproduce the issue, this is key since we haven't seen anyone reproduce the issue themselves (only seen end-user crash reports).
Could you share your FULL logcat (with VERBOSE logging). We are mostly concerned about what happens just before this line, and all the way to the crash (including the crash itself)
Initializing WorkManager with default configuration.
If you don't see this line, that is ok, please still post the full logcat. Please also feel free to reach out to OneSignal support team referencing this issue and including your full logcat.
Logcat results you mean unity android logcat results? I dont know how to use android studio i can only share unity android logcat result
@toseefhaiderkhansugguu There are a few ways to get the full logcat.
- Unity's Android Logcat Package
- If you run into issues with it not finding devices you may have to restart Unity, or your system (or kill the adb background process)
- From the terminal with
adb logcat- You can pipe this to a file by running
adb logcat > myadbcat.txt, it logs forever so stop it (with Control+C) once you run into the issue.
- You can pipe this to a file by running
- With Android Studio
- Can can still build and run your app like normal with Unity, you can simply use Android Studio to view the logcat.
@toseefhaiderkhansugguu There are a few ways to get the full logcat.
Unity's Android Logcat Package
- If you run into issues with it not finding devices you may have to restart Unity, or your system (or kill the adb background process)
From the terminal with
adb logcat
- You can pipe this to a file by running
adb logcat > myadbcat.txt, it logs forever so stop it (with Control+C) once you run into the issue.With Android Studio
- Can can still build and run your app like normal with Unity, you can simply use Android Studio to view the logcat.
Can you please provide your email ? i manged to reproduce this crash i want to share logical results
Hi @toseefhaiderkhansugguu, thanks so much.
You can email [email protected] and reference this issue.
@toseefhaiderkhansugguu Thanks for the logs! I do not see "Initializing WorkManager with default configuration." or any other WorkManager before the "WorkManager is not initialized properly" crash. I see other debug log entries so I think you captured everything correctly.
Can you let us know the following details?
- Does the same build of this app work on other devices without any issues?
- Which devices get this crash that you have tested?
- Just the :Oppo A12 Android version 9 you noted before?
- Can you share these files from your Unity build as well?
Temp\gradleOut\launcher\build\intermediates\merged_manifests\release\AndroidManifest.xmlTemp\gradleOut\launcher\build\intermediates\manifest_merge_blame_file\release\manifest-merger-blame-release-report.txt
- Could you share your APK?
- APK is probably too large for an email. So you will need to share a link to it instead.
@toseefhaiderkhansugguu Thanks for the logs! I do not see "Initializing WorkManager with default configuration." or any other WorkManager before the "WorkManager is not initialized properly" crash. I see other debug log entries so I think you captured everything correctly.
Can you let us know the following details?
- Yes i haven't seen any crash on high end devices we mostly test app on low end devices
- Oppo A12 Android version 9 and HUAWEI y7 Prime with android 8.1.0
- Sent on email
- Could you share your APK?
- APK is probably too large for an email. So you will need to share a link to it instead.
Thanks for the logs, I see the built AndroidManifest.xml contains the correct entries for the WorkManger to start:
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="com.package.example.androidx-startup"
android:exported="false" >
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup" />
<meta-data
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
android:value="androidx.startup" />
</provider>
(if this was missing it would have an issue on all devices).
We don't have these specific tests to test with. I suspect the issue might be specific to a range of models. Would it be possible to also provide:
- A full verbose logcat with ALL message, including system ones (don't filter by your app)
- If possible share this logcat from both your issue devices.
- Wondering if we see some kind of Oppo or HUAWEI specific message showing
androidx-startupwas skipped for a reason.
- Does HUAWEI y7 Prime only crash in the same scenarios as your Oppo A12? Only after installing over the top of the development build and production build a few times?
Thanks for the logs, I see the built
AndroidManifest.xmlcontains the correct entries for the WorkManger to start:<provider android:name="androidx.startup.InitializationProvider" android:authorities="com.package.example.androidx-startup" android:exported="false" > <meta-data android:name="androidx.work.WorkManagerInitializer" android:value="androidx.startup" /> <meta-data android:name="androidx.lifecycle.ProcessLifecycleInitializer" android:value="androidx.startup" /> </provider>(if this was missing it would have an issue on all devices).
We don't have these specific tests to test with. I suspect the issue might be specific to a range of models. Would it be possible to also provide:
- Right now i have produced the crash on oppo so i am sharing full log on email
I will try to produce this on HUAWEI now Yes both crashes are on app start at the time of initlization
@jkasten2 Tested same scenario on HUAWEI for hours and I am not able to re produce crash on it I don't know what is happening.. what should we do next ?
@toseefhaiderkhansugguu I took a look but didn't see anything (even Oppo specific log entries) that would relate to providers or workmanger. It is still unknown why we are not seeing "Initializing WorkManager with default configuration." in your logs.
Possibly related errors
I do however see some other errors like this on your app startup they could be causing an issue.
Rejecting re-init on previously-failed class java.lang.Class<di2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor;
...
at void com.google.android.gms.ads.internal.webview.ac.<init>(com.google.android.gms.ads.internal.webview.aw,
Also:
Rejecting re-init on previously-failed class java.lang.Class<com.google.android.finsky.cloudsearch.PlayCloudSearchService>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/service/cloudsearch/CloudSearchService
Next Steps
@toseefhaiderkhansugguu Looks like these errors are coming from a Google Ads and CloudSearchService plugins. Can you try resolving it to see if it helps? You could temporary remove it if you can't find how to fix this specific error, just to see if these errors are the cause.
@toseefhaiderkhansugguu I took a look but didn't see anything (even Oppo specific log entries) that would relate to providers or workmanger. It is still unknown why we are not seeing "Initializing WorkManager with default configuration." in your logs.
Possibly related errors
I do however see some other errors like this on your app startup they could be causing an issue.
Rejecting re-init on previously-failed class java.lang.Class<di2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/PacProcessor; ... at void com.google.android.gms.ads.internal.webview.ac.<init>(com.google.android.gms.ads.internal.webview.aw,Also:
Rejecting re-init on previously-failed class java.lang.Class<com.google.android.finsky.cloudsearch.PlayCloudSearchService>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/service/cloudsearch/CloudSearchServiceNext Steps
@toseefhaiderkhansugguu Looks like these errors are coming from a Google Ads and CloudSearchService plugins. Can you try resolving it to see if it helps? You could temporary remove it if you can't find how to fix this specific error, just to see if these errors are the cause.
@jkasten2 can you please tell me Firebase Messaging package is necessary for One-signal push notification?
@toseefhaiderkhansugguu OneSignal does not need the Unity Firebase Messaging package. You can remove it if you don't need it.
- Internally OneSignal-Android-SDK used by this SDK depends on the native Java
firebase-messagingunder the hood, but that isn't exposed to Unity.
Has anyone fixed this issue or have any updates from the devs?
@Mustafax06 we added a speculative workaround to the "WorkManager is not initialized" issue in OneSignal-Unity-SDK 3.0.10.
- This comes from the OneSignal-Android-SDK 4.8.5 release
We haven't see any new reports of "not initialized" errors since then, however different but similar error "already initialized" has come up since then.
Have you updated to OneSignal-Unity-SDK 3.0.10 or newer and still seeing this issue?