gpt4 book ai didi

android - 如何解决 Android 10 上的 KeyStoreConnectException?

转载 作者:行者123 更新时间:2023-12-04 13:38:21 28 4
gpt4 key购买 nike

我的应用在除 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)



它是一个 KeyStoreConnectException 问题。该应用程序需要时间连接到 KeyStoreConnectException。

注意:如果我在 Debug模式下运行应用程序,那么它工作正常。

请帮我找到解决方案。提前致谢。

最佳答案

正如 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com