Ich versuche, diesen Code in meinem Android-App zu starten:java.io.FileNotFoundException, wenn sie versuchen GoogleCredential zu erstellen
public Bigquery createAuthorizedClient() throws IOException {
final List SCOPE = Arrays.asList("https://www.googleapis.com/auth/bigquery");
HttpTransport transport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential();
try{
File file = new File("C:\\testprojectbigquery\\UkrBikeApp-ff55878cb577.p12");
credential = new GoogleCredential.Builder().setTransport(transport)
.setJsonFactory(jsonFactory)
.setServiceAccountId("[email protected]")
.setServiceAccountScopes(SCOPE)
.setServiceAccountPrivateKeyFromP12File(file)
.build();
}
catch (Exception e){
System.out.println("e = " + e);
}
if (credential.createScopedRequired()) {
credential = credential.createScoped(BigqueryScopes.all());
}
return new Bigquery.Builder(transport, jsonFactory, credential)
.setApplicationName("Bigquery Samples")
.build();
}
Aber jedes Mal, wenn ich:
java.io.FileNotFoundException
dann habe ich versucht Input zu schaffen, aber dann nicht Situation ändern:
AssetManager am = getAssets();
InputStream inputStream = am.open("C:\\testprojectbigquery\\UkrBikeApp-ff55878cb577.p12");
File file = createFileFromInputStream(inputStream);
Danke für Ihre Antwort. Ich kann immer noch nicht finden, wie ich ein Dateiobjekt aus Assets lesen kann, um es in meinem GoogleCredential zu verwenden. Gibt es irgendeinen Weg? – DzouSi
Um eine 'Datei' zu erhalten, können Sie die URL wie folgt verwenden:' file: /// android_asset/... 'wobei' ... 'der relative Pfad zu Ihrem Asset im Asset-Ordner ist. So können Sie versuchen: 'File file = new File (" file: ///android_asset/UkrBikeApp-ff55878cb577.p12 ");' mit der Datei 'UkrBikeApp-ff55878cb577.p12' in den Asset-Ordner putted. Für Sie [refer] (https://stackoverflow.com/questions/4820816/how-to-get-uri-from-an-asset-file) –