StorageServiceAccountSample应用程序报告"未找到KeyStore JKS实现"

Sai*_*rry 9 android google-api-java-client

StorageServiceAccountSample的第一行

HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Run Code Online (Sandbox Code Playgroud)

导致"找不到KeyStore JKS实现":

W/System.err(20142): java.security.KeyStoreException: java.security.NoSuchAlgorithmException: KeyStore JKS implementation not found
W/System.err(20142):    at java.security.KeyStore.getInstance(KeyStore.java:119)
W/System.err(20142):    at com.google.api.client.util.SecurityUtils.getJavaKeyStore(SecurityUtils.java:48)
W/System.err(20142):    at com.google.api.client.googleapis.GoogleUtils.getCertificateTrustStore(GoogleUtils.java:74)
W/System.err(20142):    at com.google.api.client.googleapis.javanet.GoogleNetHttpTransport.newTrustedTransport(GoogleNetHttpTransport.java:55)
Run Code Online (Sandbox Code Playgroud)

当我读到Android不支持JKS时,我应该如何修改此方法来解决它?

Sai*_*rry 10

更换

HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Run Code Online (Sandbox Code Playgroud)

HTTP_TRANSPORT = AndroidHttp.newCompatibleTransport();
Run Code Online (Sandbox Code Playgroud)

问题就消失了.

  • 对于遵循这条路线的人,`AndroidHttp` 类位于`com.google.api.client.extensions.android.http` 包中。不是`com.google.api.client.extensions.android2.AndroidHttp`,它已被弃用 (2认同)