在android项目中设置GOOGLE_APPLICATION_CREDENTIALS变量的位置?

时间:2016-10-24 18:32:54

标签: android google-cloud-vision

我正在开发一个Android应用程序,需要使用Google Cloud Platform提供的google vision服务。 对于身份验证,它使用类 GoogleCredential 类,其代码可在此处找到:

https://cloud.google.com/vision/docs/label-tutorial#authenticating

我需要将 GOOGLE_APPLICATION_CREDENTIALS 变量设置为指向从其他链接下载的json文件的环境变量,这并不重要。

问题是: 当我使用

设置环境变量时
Uri otherPath = Uri.parse("android.resource://com.example.himanshu.myapplication/DtnPhotoShare-ff552ae2c96c.json");
    System.setProperty("**GOOGLE_APPLICATION_CREDENTIALS**",otherPath.toString());

它给了我异常

  

java.io.IOException:Application Default Credentials不是   可用。如果在Google App Engine,Google上运行,则可以使用它们   计算引擎或Google Cloud Shell。否则,环境   变量GOOGLE_APPLICATION_CREDENTIALS必须定义指向   到定义凭证的文件。

排成一行

GoogleCredential credential =
                GoogleCredential.getApplicationDefault().createScoped(VisionScopes.all());

所有代码都可以在上面给出的链接中找到。

1 个答案:

答案 0 :(得分:0)

您需要在磁盘和基于Linux的计算机上使用服务密钥

export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_credential_file>

或者将其添加到~/.bashrc(位于您的主目录中)文件中并将其获取,以便库可以访问此环境变量。