StorageServiceAccountSample application reports "KeyStore JKS implementation not found"
The very first line of StorageServiceAccountSample
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
causes the "KeyStore JKS implementation not found":
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)
As I read Android doesn't support JKS, how should I modify this method to work around it?
Replaced
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
with
HTTP_TRANSPORT = AndroidHttp.newCompatibleTransport();
and the problem went away.
I've found an answer on google issue tracker.
Replace
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
with
HTTP_TRANSPORT = new com.google.api.client.http.javanet.NetHttpTransport()
But don't know, how it's working.