android - java.lang.IllegalStateException:凭据加密存储中的 SharedPreferences 在用户解锁之前不可用
问题描述
崩溃未在 Google Pixel 设备(OS 9.0-pie)上登录 cashlytics,Playstore 将 ANR&Crashes 报告为 java.lang.IllegalStateException:凭据加密存储中的 SharedPreferences 直到用户解锁后才可用
它在初始化 Fabric.with(this, new Crashlytics()) 时发生,还观察到 IllegalStateException 在设备重新启动时抛出,并且应用程序注册为 LOCKED_BOOT_COMPLETED 和 BOOT_COMPLETED 广播意图
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.connect, PID: 2328
java.lang.RuntimeException: Unable to create application com..common.app.AppApplication: java.lang.IllegalStateException: SharedPreferences in credential encrypted storage are not available until after user is unlocked
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5925)
at android.app.ActivityThread.access$1100(ActivityThread.java:200)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at
有没有人遇到过类似的问题。任何人都可以帮助解决这个问题吗?
解决方案
我自己没有遇到过这个问题,但这里有一篇文章讨论了支持直接启动模式。
https://developer.android.com/training/articles/direct-boot
这里还有一个来自 Google 的 Github 链接,展示了如何访问设备的加密存储。在 AlarmStorage 类中。
推荐阅读
- pytorch - 为什么通过克隆删除张量对象属性?
- java - 有没有办法来解决这个问题?我无法连接我的 GUI?
- javascript - ValueError:logits 和标签必须具有相同的形状,但形状为 [2] 和 [2,1]
- javascript - 如何优雅地处理自定义 Webpack 插件中的错误?
- c - NumPy 源代码中的 NPY_NO_EXPORT 有什么意义?
- linux - 我需要帮助使用 Sed 向文件添加标题
- javascript - d3 版本好像是更高版本?
- makefile - 如何将 autotools 工件保留在源代码树之外?
- discord.js - 我们如何从 quick.db 中获取一个元素而不返回“未定义”?
- c - 试图编写一个程序来计算 C 中圆的周长和面积