Не удалось подключиться к клиенту API Google

Я не могу найти последнее известное местоположение. Я включил API геокодирования и API Google Адресов для Android на консоли Google. Я добавил ключ api для файла манифеста:

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="@string/google_api_key" />

но я продолжаю получать сообщение в консоли: " Не удалось подключиться к клиенту API Google: ConnectionResult {statusCode = API_UNAVAILABLE, resolution = null}"


UPDATE

Я использую образец Google

protected synchronized void buildGoogleApiClient() {
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .addApi(LocationServices.API)
            .build();
}

@Override
public void onConnected(Bundle connectionHint) {
    Location mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
            mGoogleApiClient);
    if (mLastLocation != null) {
        Toast.makeText(this, "Latitude = " + mLastLocation.getLatitude() + "\n" +
                "Longitude = " + mLastLocation.getLongitude(), Toast.LENGTH_LONG).show();
    }
}

@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
    Toast.makeText(this, connectionResult.toString(), Toast.LENGTH_LONG).show();
}

onConnected и onConnectionFailed не звонят.

А также я использую Android-ReactiveLocation но оба метода выводятся на консоль: Не удалось подключиться к клиенту Google API: ConnectionResult {statusCode = API_UNAVAILABLE, разрешение = null}

Ответ 1

У меня была та же проблема

Couldn't connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null}

потому что Google Places API for Android не был включен в консоли API.

https://developers.google.com/places/android/signup

Ответ 2

Включили ли вы API-интерфейс места в разработчике консоли Google? (в меню API и Auth). Вы выбрали ключ API андроида?

Он отлично работает для меня, поэтому я не знаю, как это могло бы быть иначе.

Ответ 3

Вы не активировали Google+ Api на консоли.

Если вы хотите использовать любой другой API, но вам нужно будет войти в систему с учетной записью Google+, вам нужно включить его.

Надеюсь, что это сработает.

Ответ 4

Я столкнулся с той же проблемой с использованием API Google Fit. С очень похожей настройкой на то, что вы описали, я получил такое же сообщение об ошибке:

Не удалось подключиться к клиенту API Google: ConnectionResult {statusCode = API_UNAVAILABLE, разрешение = null}

Проблема заключалась в конфигурации для связи с службой входа в Google. Я решил эту проблему после поиска документации Google: Начать интеграцию входа Google в ваше приложение для Android. Я использовал раздел "Получить файл конфигурации" для получения инструкций по извлечению хэша SHA1 для моего хранилища ключей, а затем использовал кнопку "Получить файл конфигурации", чтобы инициировать процесс консоли разработчика Google, чтобы создать файл JSON, который был помещен в папку "/app" приложения для Android.

Ответ 5

В моем приложении используется API Google Диска, и я столкнулся с такой же проблемой "Не удалось подключиться к клиенту API Google: ConnectionResult {statusCode = API_UNAVAILABLE, разрешение = null} на некоторых устройствах. через Начать интеграцию входа Google в ваше приложение для Android помог, но оставил меня в замешательстве:
Как влияет google-services.json на полученный apk? Должен ли я делать то же самое для сертификата выпуска и т.д.... В конце концов я нашел то, что находится за сценой, и другой ответ показывает, что google-services.json просто необязательный.

Итак, эти шаги помогли мне:

  • Откройте Консоль разработчика Google и откройте/создайте проект
  • В боковом меню откройте "API-менеджер"
  • В левом столбце нажмите "Учетные данные"
  • "Добавить учетные данные" → "Идентификатор клиента OAuth 2.0" → "Android" и заполните его для каждого сертификата, который можно использовать для подписания вашего приложения, то есть: сертификат выпуска, сертификат отладки Jenkins, локальный сертификат отладки

Также не забудьте проверить, что соответствующий API включен в вашем проекте (см. шаг № 1)

Во время генерации google-services.json через Начать интеграцию входа Google в ваше приложение для Android тот же самый идентификатор клиента OAuth 2.0 созданный неявно.

Ответ 6

У меня была аналогичная проблема. Хотя я и не использовал какой-либо Google API, у меня тоже была эта ошибка.

Мой сценарий: я делал Wearable App и хотел отправить DataItem с телефона на носки. Для этого я использовал GoogleApiClient и Wearable.DataApi.

Спустя много часов, пытаясь решить проблему, я пришел на этот пост: https://android-developers.googleblog.com/2014/10/tips-for-error-handling-with-android.html.

Часть статьи, которая была важна для меня, была:

При запросе Wearable.API, когда не доступно приложение или устройство Android Wear.

Итак, я решил проблему установки приложения Companion по телефону: https://play.google.com/store/apps/details?id=com.google.android.wearable.app

После установки ResultCallback начал возвращать успех.

Ответ 7

import com.google.auth.oauth2.{GoogleCredentials, ServiceAccountCredentials}
import com.google.cloud.bigquery._

Класс XYZRawDataIngestion {def run(): Unit = {

var credentials: GoogleCredentials = null
val client_id: String = "10754111315596"
val client_email: String = "[email protected]"
val private_key = "-----BEGIN PRIVATE KEY-----\nMII9xE9wTn68bxG8W60yU4O+JdullsTX\naOCrYTyVsTK+U78ElELXSqKn+Mqqka/IAS9ETCutLXhMNbTHbDUoN6POzU1c7GGz\nxSAmSXzVz6ejoJ9zoZXCB+cEI/CCne+GoGzg+CUCgYEAuGFxjuFNEAJbOamo6zWu\n/MobrYwqg4W4akwe4bgFE9lbpb3qs5pKhxGz0Utn3fNyhsTwQvgJ5oCBVIRxZwzv\nM8+4aHXGMJLNMf6EpUeoOCWOcp+6kLFNZZF9erUU1d3m+ID4Df4AUijIIG6lUQa1\nLP4eCwDeNpJGFcTQuz18u+U=\n-----END PRIVATE KEY-----\n"
val private_key_id: String = "79072ec47cc5a70bb4f2da1ccd4a"
val project_id = "xyz-mgmt"
val token_uri = new URI("https://oauth2.googleapis.com/token")

credentials = ServiceAccountCredentials.fromPkcs8(client_id, client_email, private_key, private_key_id,
  null, null, token_uri)

val bigquery: BigQuery = BigQueryOptions.newBuilder.setCredentials(credentials).setProjectId(project_id).build().getService()
var credentials: GoogleCredentials = null
val client_id: String = "10754111315596"
val client_email: String = "[email protected]"
val private_key = "-----BEGIN PRIVATE KEY-----\nMII9xE9wTn68bxG8W60yU4O+JdullsTX\naOCrYTyVsTK+U78ElELXSqKn+Mqqka/IAS9ETCutLXhMNbTHbDUoN6POzU1c7GGz\nxSAmSXzVz6ejoJ9zoZXCB+cEI/CCne+GoGzg+CUCgYEAuGFxjuFNEAJbOamo6zWu\n/MobrYwqg4W4akwe4bgFE9lbpb3qs5pKhxGz0Utn3fNyhsTwQvgJ5oCBVIRxZwzv\nM8+4aHXGMJLNMf6EpUeoOCWOcp+6kLFNZZF9erUU1d3m+ID4Df4AUijIIG6lUQa1\nLP4eCwDeNpJGFcTQuz18u+U=\n-----END PRIVATE KEY-----\n"
val private_key_id: String = "79072ec47cc5a70bb4f2da1ccd4a"
val project_id = "xyz-mgmt"
val token_uri = new URI("https://oauth2.googleapis.com/token")

credentials = ServiceAccountCredentials.fromPkcs8(client_id, client_email, private_key, private_key_id,
  null, null, token_uri)

val bigquery: BigQuery = BigQueryOptions.newBuilder.setCredentials(credentials).setProjectId(project_id).build().getService()

} } }}