GoogleService не удалось инициализировать

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

GoogleService не удалось инициализировать, статус: 10, Отсутствует ожидаемый ресурс: "R.string.google_app_id" для инициализации сервисов Google. Возможные причины отсутствуют google-services.json или com.google.gms.google-services gradle.

Я не уверен, что случилось. Карта работает нормально, и я могу использовать ее без каких-либо проблем. В моем файле gradle есть эта запись:

compile 'com.google.android.gms: play-services: 8.4.0'

Что он жалуется и как его смягчает?

Ответ 1

Вам нужно поместить файл конфигурации (google-services.json), сгенерированный developer.google.com, как указано на втором шаге официальные документы здесь

Процесс прост

  • Вы можете выбрать свой проект или создать новый.
  • Затем, выбрав нужные услуги (в этом случае службу карт), вы можете сгенерировать конфигурационный файл.

    Для людей, которые перешли на проекты Firebase, они могут получить то же самое, перейдя в Firebase Console, выбрав ваш проект и в настройках, которые вы будете найдите файл конфигурации.

  • Затем, как указано в шаге 3 официальных документов здесь

    Скопируйте файл google-services.json, который вы только что загрузили, в папку приложения/или мобильного телефона вашего Android

P.S: Для людей, отрицающих этот ответ, пожалуйста, оставляйте комментарий о том, почему вы его голосуете.

Ответ 2

[Из Менеджера Продукта @Google]

Вы можете исправить эту проблему, загрузив и скопировав файл google-services.json для своего приложения Android, выполнив следующие шаги:

  • Выберите свое имя приложения/проекта и Android packagename из этой ссылки и нажмите Continue to Choose and configure services.
  • Нажмите Continue to Generate Configuration files.
  • Загрузите google-services.json и скопируйте файл в каталог модуля app/ или mobile/ в своем проекте Android.

Если вы ранее импортировали свой проект Google в Firebase, вы можете получить обновленный google-services.json из консоли Firebase в разделе "Настройки проекта".

НЕ КОПИРОВАТЬ PROJECT_NUMBER, как предложено одним из других ответов, так как google_app_id ссылается на ваше приложение в проекте, а не на сам проект.

Ответ 3

В моем случае причина этой ошибки заключалась в том, что плагин Google Services для Gradle и библиотека Play Services были несовместимыми версиями. Инструкции для совместимых версий:

1) Добавьте зависимость к вашему проекту build.gradle:

classpath 'com.google.gms:google-services:1.5.0-beta2'

2) Добавьте плагин к своему сайту build.gradle:

apply plugin: 'com.google.gms.google-services'

3) Если вы используете Android Studio, это строка для добавления в раздел зависимости вашего файла сборки build.gradle:

dependencies {
  compile "com.google.android.gms:play-services:8.3.0"
}

Источник: https://developers.google.com/cloud-messaging/android/client

Ответ 4

Я столкнулся с той же проблемой и решил, что это следует за официальным решением .

Вот шаги:

  • получить конфигурационный файл google-services.json из эту ссылку.

  • Скопируйте файл google-services.json, который вы только что загрузили, в каталог приложения/или мобильного/вашего проекта Android Studio.

  • Добавьте зависимость к вашему проекту build.gradle:

    classpath 'com.google.gms:google-services:1.5.0-beta2'
    
  • Добавьте плагин на свой уровень сборки:

    apply plugin: 'com.google.gms.google-services'
    
  • Добавьте эту зависимость в свой файл build.gradle на уровне приложения:

    dependencies {
        compile "com.google.android.gms:play-services:8.3.0"
    }
    

Ответ 5

Это также случается со мной. В моем случае, это потому, что студия Android попыталась вставить какой-то код в мою основную деятельность. Удаление кода исправляет ошибку

Введенный код относится к индексированию приложений:

https://developers.google.com/app-indexing/android/publish

Ответ 6

Тогда у меня была такая же проблема. Был в состоянии решить эту проблему, используя только необходимую библиотеку игровых сервисов, которая в моем случае GCM.

Вместо com.google.android.gms:play-services:8.4.0, я использую com.google.android.gms:play-services-gcm:8.4.0. См. здесь для получения дополнительной информации; это также решает проблему мультидекса.

Затем я применил оба подхода @Radix и @Alexander для удаления сообщения. GCM был выведен в logcat относительно google-services.json.

Ответ 7

Просто у меня есть другое решение, которое я случайно удаляю

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
        .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);

Добавьте это и работайте, для нового решения

Ответ 8

Для тех, кто сталкивается с этой проблемой даже после правильной настройки игровых сервисов и размещения файла google-services.json в папке project/app, фактическое решение -

Build > Rebuild Project

Возможно, из-за того, что строки из json файла не интегрированы в скомпилированные ресурсы до тех пор, пока не будет выполнена полная перестройка.

Ответ 9

Вы можете изменить versionCode и versionName вашего приложения в файле Gradle.

Ответ 10

A быстрое исправление Я использовал отключить подписание. Если вы не хотите создавать производственный код, вы можете настроить свой вариант сборки для отладки localOldDebug или localDebug.

Нажмите "Варианты сборки" в левом нижнем углу в Android Studio.

how-to-disable-generated-signed-apk-android-studio