2016-10-24 3 views
1

Я разрабатываю приложение для Android, которое требует использования сервиса google vision, предоставляемого Google Cloud Platform. Для аутентификации, это использует класс GoogleCredential класс, код, для которого можно найти здесь:Где установить переменную GOOGLE_APPLICATION_CREDENTIALS в проекте android?

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: Приложение по умолчанию учетные данные не являются . Они доступны, если они работают в Google App Engine, Google Compute Engine или Google Cloud Shell. В противном случае необходимо указать среду переменной GOOGLE_APPLICATION_CREDENTIALS, указав в файл, определяющий учетные данные.

в строке

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

Весь код можно найти в ссылке, приведенной выше.

ответ

0

Вам необходимо сервисный ключ на жестком диске и на Linux машине на основе вы можете

export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_credential_file> 

Или же добавить к этому ~/.bashrc (находится в вашем домашнем каталоге) файл и источник его так, что эта переменная может быть доступна по библиотеке.

Смежные вопросы