Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Thanks for reporting this. We will take a look at FBE and try to land a fix in a future release. In the meantime, as the exception notes, you will want to initialize WorkManager in Application.onCreate or via a ContentProvider to avoid the error.
il...@google.com <il...@google.com> #3
Initialize WorkManager in Application.onCreate or via a ContentProvider may cause other error:
08-07 14:03:13.261 5869 5869 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider androidx.work.impl.WorkManagerInitializer: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:6366)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:5910)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5818)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.-wrap1(Unknown Source:0)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1717)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6618)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: Caused by: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:387)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:372)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.utils.IdGenerator.<init>(IdGenerator.java:47)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.background.systemjob.SystemJobScheduler.<init>(SystemJobScheduler.java:69)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.background.systemjob.SystemJobScheduler.<init>(SystemJobScheduler.java:55)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.Schedulers.createBestAvailableBackgroundScheduler(Schedulers.java:114)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.getSchedulers(WorkManagerImpl.java:228)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:179)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:151)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:133)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.WorkManager.initialize(WorkManager.java:160)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerInitializer.onCreate(WorkManagerInitializer.java:40)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1928)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1903)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:6363)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: ... 10 more
I will try other ways.
08-07 14:03:13.261 5869 5869 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider androidx.work.impl.WorkManagerInitializer: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:6366)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:5910)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5818)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.-wrap1(Unknown Source:0)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1717)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6618)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: Caused by: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:387)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:372)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.utils.IdGenerator.<init>(IdGenerator.java:47)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.background.systemjob.SystemJobScheduler.<init>(SystemJobScheduler.java:69)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.background.systemjob.SystemJobScheduler.<init>(SystemJobScheduler.java:55)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.Schedulers.createBestAvailableBackgroundScheduler(Schedulers.java:114)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.getSchedulers(WorkManagerImpl.java:228)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:179)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.<init>(WorkManagerImpl.java:151)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerImpl.initialize(WorkManagerImpl.java:133)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.WorkManager.initialize(WorkManager.java:160)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at androidx.work.impl.WorkManagerInitializer.onCreate(WorkManagerInitializer.java:40)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1928)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.content.ContentProvider.attachInfo(ContentProvider.java:1903)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:6363)
08-07 14:03:13.261 5869 5869 E AndroidRuntime: ... 10 more
I will try other ways.
Description
Following is true for fragment's view and it complicates usage of it.
It would be nice to explore if it is possible to make
viewLifecycleOwner
SavedStateRegistryOwner
and make those lifecycles the same