有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓 Robolectric提供了java。安全KeyStoreException:未找到AndroidKeyStore

因此,我编写了我的应用程序,使用KeyStore对数据进行加密/解密。 我还为此编写了一个很好的机器人分子测试,但当我尝试运行该测试时,出现了以下异常:

java.security.KeyStoreException: AndroidKeyStore not found

对于以下代码:

keyStoreInstance = KeyStore.getInstance("AndroidKeyStore");

有什么解决办法吗

我所发现的是: https://github.com/robolectric/robolectric/issues/1518


共 (1) 个答案

  1. # 1 楼答案

    所以,这背后的原因是,当您通过Robolectric运行时,AndroidKeyStore实现并不存在。 Using the Android KeyStore in Robolectric tests

    您可以使用以下方法避免此异常:

    isTestRunner(){
        return Build.FINGERPRINT.equalsIgnoreCase("robolectric");
    }
    

    如果你有一个类,让我们说一下你的密钥库。类注入到许多其他类中,您仍然可以模拟您的密钥库。类,这使您能够测试其他类。 如果您想测试YourKeystore。类本身,我担心这是不可能的(参见上面的链接)