Я использую 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