Отсутствует ключ api_key/current в Google Services 3.0.0

Поскольку я обновил проект до последней версии служб и библиотек Google (9.0.0), у меня возникла странная проблема:

Ошибка сборки

Оценка консоли:

:app:processDebugGoogleServices
Parsing json file: /Users/cyrilmorales/Documents/Projects/mobilemeans-punainenristi/app/google-services.json
:app:processDebugGoogleServices FAILED
Error:Execution failed for task ':app:processDebugGoogleServices'.
> Missing api_key/current_key object
Information:BUILD FAILED

build.gradle (root):

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
    classpath 'com.google.gms:google-services:3.0.0'
}

build.gradle (приложение):

dependencies {
    ....
    compile 'com.google.android.gms:play-services-analytics:9.0.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.google.android.gms:play-services-location:9.0.0'
    ...
}
apply plugin: 'com.google.gms.google-services'

Однако он хорошо работает с библиотеками сервисов play в 8.4.0 и google-services 2.1.0.

У вас есть идея решения?

16 ответов

Решение

Сгенерируйте новый файл конфигурации (google-services.json) по адресу: https://developers.google.com/cloud-messaging/android/client

Новый конфигурационный файл с "api_key": [ { "current_key": XXX } ] в разделе клиента

Обновить: или вручную включить службу в консоли разработчика и сгенерировать ключ.

Добавление пустого значения текущего ключа в файл google-services.json решило эту проблему для меня

"api_key": [{ "current_key": "" }]

Да, как и в первый раз, когда я использую Firebase, я сталкиваюсь с этим. Нажмите на меню вашего приложения и нажмите "Управление".

введите описание изображения здесь

Вы можете снова загрузить google-services.json.

введите описание изображения здесь

Для всех, у кого есть эта проблема, сейчас вам нужно добавить любую службу в ваше приложение по адресу https://developers.google.com/cloud-messaging/android/client

В моем случае я добавил admob (уже есть аналитика и gcm), а затем файл был создан с помощью api_key.

Я думаю, что это ошибка, и скоро она будет исправлена, пока не сделайте это.

Хотя принятый ответ Йозки Йозина и его комментарии, Cloud Messaging не связаны и не требуются.

Тем не менее, воссоздание google-services.jsonэто ключ к решению (так что я проголосовал за него). Ниже то, что я сделал:

Как вы знаете, вы можете создать файл конфигурации для Google Analytics из Руководства для разработчиков Google.

1: выберите ваше приложение.

1) выбрать приложение

2: закройте всплывающее окно! Прячется...

Закройте всплывающее окно

3: ВАРИАНТ ADMOB!

скрытая опция admob

4 : Конечно, выберите и включите его!

включи это

5: Теперь мы можем правильно создавать файлы конфигурации!

генерировать файлы конфигурации

6: Мы сделали это! На этот раз в файле конфигурации должен быть указан ключ api_key.

мы сделали это

Вывод: интерфейс интерактивного инструмента генерации немного сбивает с толку...

Вы можете скачать google-services.json подать снова.

Шаги для скачивания:

1). Нажмите на верхнее меню в вашем приложении в Firebase Приставка.

2). Нажмите на управление.

3). Ты найдешь Download the latest config опцию файла, скачать и заменить google-services.json файл в вашем приложении.

Сначала в вашем файле JSON

замещать

"api_key": []

с

"api_key": [{ "current_key": "" }]

Тогда сборка gradle будет успешной, но при запуске приложения вы можете получить ошибки, подобные следующим:

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
    File1: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.2.2\d20be6a5ddd6f8cfd36ebf6dea329873a1c41f1b\jackson-core-2.2.2.jar
    File2: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.2.2\3c8f6018eaa72d43b261181e801e6f8676c16ef6\jackson-databind-2.2.2.jar
    File3: C:\Users\bucky\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.2.2\285cb9c666f0f0f3dd8a1be04e1f457eb7b15113\jackson-annotations-2.2.2.jar

Чтобы решить эту проблему, вы можете добавить следующее в ваш файл app.gradle. Это сработало для меня.

packagingOptions {
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/ASL2.0'
    }

Изменить: Это показало мне некоторые ошибки позже при создании файла АПК. Поэтому мне пришлось снова загрузить файл JSON. После 2 испытаний я получил файл JSON с действующим ключом API.

Если вы не используете Firebase, правильная ссылка для создания файла конфигурации google-services.json фактически находится здесь.

Вам необходимо добавить в проект отпечатки пальцев сертификата SHA, а затем снова загрузить файл google-services.jason, который должен автоматически содержать "api_key": [{ "current_key": "xxxxxx" }].

Вы можете просмотреть следующую страницу, чтобы увидеть, как генерировать отпечатки пальцев:

https://developers.google.com/android/guides/client-auth

В Windows просто выполните следующую команду и используйте android в качестве пароля для целей отладки:

keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

Восстановите google-services.json на https://developers.google.com/cloud-messaging/android/client.Важно отметить, что на шаге "Выбор служб" необходимо включить облачные сообщения, откройте новый Google В файле -services.json вы увидите такие слова, как

    "api_key": [
     {
       "current_key": "xxxxxxxxxxx"
     }"

без этих слов или без значения current_key не тот файл

введите описание изображения здесь

Нажмите Обзор -> Значок шестеренки -> Настройки проекта.

введите описание изображения здесь

Перейдите в раздел Загрузка последней конфигурации и нажмите кнопку google-service.json, чтобы загрузить файл, сохранить его в папке приложения и снова скомпилировать. Наслаждайтесь!

Я смог решить эту проблему с помощью этих шагов, которые не получили ответа здесь. Этот ответ НЕ включает Cloud Messaging, он только возвращает свой ключ сервера.

Итак, сначала перейдите в консоль Firebase, затем перейдите в "Настройки проекта", а затем нажмите на вкладку "Облачные сообщения". Посмотрите, где написано "ключ сервера", и если не отображается длинный ключ (не номер "Идентификатор отправителя"), нажмите "Восстановить ключ", и теперь должен отобразиться длинный ключ. Скопируйте этот ключ и поместите его в файл google-services.json по адресу: "api_key": [ {"current_key" : "key goes here"} ],

Этот метод помог мне, пока никто из других не работал, так что, надеюсь, это кому-то поможет.

Использование Firebase

GoogleServices'. > Missing api_key/current_key object

Я получил эту ошибку после обновления существующего проекта до новых Firebase Services. Сгенерированный файл google-service.json, загруженный со страницы настроек проекта firebase, не содержит api_key необходимо.

Из других ответов здесь похоже, что для этого нужно добавить Google / Firebase Cloud Messaging (GCM / FCM) api_key быть включенным в google-service.json файл.

Поэтому я добавил зависимости от FCM Firebase перед повторной загрузкой файла, и на этот раз ключ был включен.

Включить FCM (GCM)

dependencies {
     compile 'com.google.firebase:firebase-messaging:9.0.0'
}

Если вы не хотите перенастроить и загрузить google-services.json файл, то вы можете получить ключ API непосредственно из консоли Firebase. Просто иди в

Обзор> Добавить другое приложение> Интернет

Вы получите конфигурацию для вашей базы данных, которая будет содержать apiKey, Просто скопируйте это значение и поместите его в current_key значение, обозначенное XXX ниже

"api_key": [{ "current_key": "XXX" }]

Добавьте это в свой файл google-service.json. вы найдете его в app/google-service.json

"api_key": [{"current_key": "ваш-google-api-key" }]

Для пожарных мигрантов:

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

Если вы используете firebaes, вы должны скопировать serverKey из базы данных на google-services.json

 "api_key": [{ "current_key": "SERVER_KEY"}

Чтобы получить ключ сервера, перейдите в ProjectOverview> Настройки проекта> CloudMessaging > Копировать ИЛИ создать и скопировать serverKey.