【问题标题】:Android - NullPointerException in android.security.IKeystoreService.del for Huawei devicesAndroid - 华为设备的 android.security.IKeystoreService.del 中的 NullPointerException
【发布时间】:2018-07-06 09:44:28
【问题描述】:

在将我们的应用上传到 Google Play 商店时,google 的预发布报告表明应用正在崩溃并出现空指针异常。该问题仅与华为设备中的 KeyStore 实施有关。

堆栈跟踪:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'int android.security.IKeystoreService.del(java.lang.String, int)' on a null object reference
       at android.security.KeyStore.delete(KeyStore.java:186)
       at android.security.Credentials.deletePrivateKeyTypeForAlias(Credentials.java:292)
       at android.security.Credentials.deleteAllTypesForAlias(Credentials.java:251)
       at android.security.keystore.AndroidKeyStoreKeyPairGeneratorSpi.generateKeyPair(AndroidKeyStoreKeyPairGeneratorSpi.java:464)
       at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:699)
       at com.example.utility.crypto.KeyStoreHelper.createKeys(Unknown Source)
       at com.example.utility.crypto.KeyStoreHelper.createKeys(Unknown Source)
       at com.example.activities.register.SplashActivity$1.run(Unknown Source)
       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:255)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:776)  

我正在使用 Google 的 Tink 库来实现 Keystore。图书馆与错误无关。没有库仍然会发生错误。

下面是代码:

@Throws(Exception::class)
private fun getOrGenerateNewKeysetHandle(): KeysetHandle {
    return AndroidKeysetManager.Builder()
        .withSharedPref(this, "KEYSET", "PREF")
        .withKeyTemplate(AeadKeyTemplates.AES256_GCM)
        .withMasterKeyUri(REIWA_MASTER_KEY_URI)
        .build()
        .keysetHandle
}

我认为这与设备的密钥库实现有关。

任何帮助将不胜感激。

【问题讨论】:

  • 看起来库问题或我不知道的东西:-) |看起来IKeystoreService 为空
  • @Toaster 不,它与图书馆无关。没有库仍然会发生错误。
  • 还需要添加一些您调用的代码:IKeystoreService.del 或进行类似的 lib 调用以帮助回答者
  • 我们不知道问题出在哪里。将代码放在您使用 utility.crypto.KeyStoreHelper.createKeys 调用的位置。
  • 你找到答案了吗@Rajesh?

标签: android kotlin android-keystore huawei-mobile-services tink


【解决方案1】:

禁用与 AndroidKeysetManager.doNotUseKeystore() 的 Keystore 集成。

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多