- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用在除 Android 10 之外的所有 Android 操作系统上运行良好。我正在使用已更新为 Android 10 的 Motorola One Power 设备。我们正在使用 Android Keystore 加密数据库。
应用程序在 luanch 上崩溃并出现以下错误。
android.security.keystore.KeyStoreConnectException: Failed to communicate with keystore service at android.security.keystore.AndroidKeyStoreCipherSpiBase.ensureKeystoreOperationInitialized(AndroidKeyStoreCipherSpiBase.java:256) at android.security.keystore.AndroidKeyStoreCipherSpiBase.engineInit(AndroidKeyStoreCipherSpiBase.java:148) at javax.crypto.Cipher.tryTransformWithProvider(Cipher.java:2980)
最佳答案
正如 MatPag 指出的那样,这是一个 known bug在早期或更高版本中不存在的 Android 10 中。当我在几个地方调用 Cipher::init() 时,这是 Kotlin 中的一个方便的包装函数:
private fun keyStoreWorkaroundForAndroid10(f: () -> Unit) {
for (i in 0..3) {
try {
f()
return
} catch (e: ProviderException) {
Timber.d("Applying Android 10 KeyStoreConnectException bug workaround. Counter: ${i}, Exception: ${e.message}")
Thread.sleep(100)
continue
}
}
}
然后你这样称呼它(记住 - 在后台线程中):
keyStoreWorkaroundForAndroid10 {
cipherEncrypt.init(Cipher.ENCRYPT_MODE, publicKey)
}
关于android - 如何解决 Android 10 上的 KeyStoreConnectException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60482479/
我的应用在除 Android 10 之外的所有 Android 操作系统上运行良好。我正在使用已更新为 Android 10 的 Motorola One Power 设备。我们正在使用 Androi
我是一名优秀的程序员,十分优秀!