it-roy-ru.com

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

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

 Error build

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

: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.

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

155
palmsnipe

Создать новый файл конфигурации (google-services.json) из: https://developers.google.com/cloud-messaging/Android/client#get-config

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

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

158
Jozka Jozin

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

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

88
Ajax -the Max

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

 enter image description here

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

 enter image description here

34
Htoo Aung Hlaing

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

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

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

9
Elvis Oliveira

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

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

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

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

 1) choose an app

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

 Close the popup!

3: ВАРИАНТ ADMOB!

 the hidden option of admob

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

 enable it!

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

 generate configuration files

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

 we made it!

Заключение: Интерфейс интерактивного инструмента генерации немного сбивает с толку ...

8
hata

Вы можете скачать файл google-services.json снова.

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

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

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

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

7
Anubhav

Сначала в вашем файле 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'
    }

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

4
Doge

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

3
Phileo99

Вам необходимо добавить 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
2
Hexise

 enter image description here

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

 enter image description here

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

2
Pinkesh Darji

восстановить google-services.json в https://developers.google.com/cloud-messaging/Android/client#get-config , одна важная вещь заключается в том, что вы должны включить облачные сообщения в «Выбор служб» шаг, откройте новый файл google-services.json, вы увидите такие слова, как 

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

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

2
dx3904

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

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

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

2
David Velasquez

Использование 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'
}
1
TouchBoarder

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

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

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

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

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

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

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

0
Tarun Voora

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

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

0
Su-Au Hwang