title: 'JKS not found' when trying GoogleNetHTTPTransport
body: <p>I've been having some troubles with Google Authorization and I've never worked with any "Google credentials-involved" process before. </p>
  
  <p>My problem takes place after I've created the credential reader (which I assume means that I could access my Google credential's JSON file correctly), just in the line where I instantiate a new Trusted Transport from the <code>GoogleNetHTTPTransport</code>. There, the Exception error throws:</p>
  
  <pre><code>W/System.err: java.security.KeyStoreException: JKS not found
      at java.security.KeyStore.getInstance(KeyStore.java:649)
      at com.google.api.client.util.SecurityUtils.getJavaKeyStore(SecurityUtils.java:53)
      at com.google.api.client.googleapis.GoogleUtils.getCertificateTrustStore(GoogleUtils.java:74)
      at com.google.api.client.googleapis.javanet.GoogleNetHttpTransport.newTrustedTransport(GoogleNetHttpTransport.java:55)
      at com.example.juans.hasapp.getDataFromSheet.authorize(getDataFromSheet.java:70)
  </code></pre>
  
  <p>I've been investigating but couldn't still find a decent and clear explanation of how these Transports work or why the <code>KeyStore</code> is involved in this process.</p>
  
  <p>My code is part of an <code>AsyncTask</code> I'm using to fetch data from a Google Sheet, for which I'm currently trying to get access. Here I leave you <em>authorize()</em> method that will retrieve me a <code>Credential</code> to pass to my <code>SheetsService</code>.</p>
  
  <pre><code>private Credential authorize(Context context) {
      Resources resources = context.getResources();
      InputStream jsonInput = resources.openRawResource(R.raw.credential_info);
      Reader credentialReader = null;
      try {
          credentialReader = new InputStreamReader(jsonInput);
          Log.v("GoogleAut", "credential reader created");
      } catch (NullPointerException n){
          Log.v("ERROR GoogleAut", "filePath came out empty, no info provided");
      }
  
      GoogleClientSecrets clientSecrets = null;
      try {
          clientSecrets = GoogleClientSecrets
                  .load(JacksonFactory.getDefaultInstance(),credentialReader);
      } catch (IOException e) {
          e.printStackTrace();
          Log.v("ERROR GoogleAut","IOException error occurred");
      }
  
      List&lt;String&gt; scopes = Arrays.asList(SheetsScopes.SPREADSHEETS);
  
      GoogleAuthorizationCodeFlow flow = null;
      try {
          flow = new GoogleAuthorizationCodeFlow
                  .Builder(GoogleNetHttpTransport.newTrustedTransport()
                  , JacksonFactory.getDefaultInstance()
                  ,clientSecrets
                  ,scopes)
                  .setDataStoreFactory(new MemoryDataStoreFactory())
                  .setAccessType("offline")
                  .build();
      } catch (IOException e) {
          e.printStackTrace();
          Log.v("ERROR GoogleAut","IOException error occurred");
      } catch (GeneralSecurityException e) {
          e.printStackTrace();
          Log.v("ERROR GoogleAut","GeneralSecurityException error occurred");
      }
  
      try {
          return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver())
                  .authorize("user");
      } catch (Exception e) {
          e.printStackTrace();
          Log.v("ERROR GoogleAut", "Unidentified error");
      }
      return null;
  }
  </code></pre>
  
  <p>Thanks in advance, I'm just starting with Google developing and I'm very interested in learning about all its possibilities. I also take any suggestions to my coding.</p>