簡體   English   中英

使用Google Services 3.0.0時缺少api_key /當前密鑰

[英]Missing api_key/current key with 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(app):

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'

但是,它適用於8.4.0和google-services 2.1.0中的播放服務庫

你對這個解決方案有什么看法嗎?

從以下位置生成新的配置文件(google-services.json): https//developers.google.com/cloud-messaging/android/client#get-config

客戶端部分中新配置文件"api_key": [ { "current_key": XXX } ]

更新:或在開發人員控制台中手動啟用服務並生成密鑰。

在google-services.json文件中添加空當前鍵值為我解決了這個問題

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

是的,至於第一次使用Firebase,我就是這樣。點擊你的應用程序菜單,然后點擊“管理”。

在此輸入圖像描述

你可以再次下載google-services.json。

在此輸入圖像描述

對於遇到此問題的所有人,目前,您需要在https://developers.google.com/cloud-messaging/android/client#get-config中為您的應用添加任何服務

在我的情況下,我添加了admob(已經有分析和gcm),然后使用api_key生成文件。

我認為這是一個錯誤,很快就會修復,直到那個,做到這一點。

雖然Jozka Jozin接受了答案及其評論,但雲消息傳遞既不相關也不必要。

然而,重新生成google-services.json是解決方案的關鍵(因此我投票給他)。 以下是我的所作所為:

如您所知,您可以從Google Developers Guide生成Google Analytics的配置文件。

1:選擇您的應用。

1)選擇一個應用程序

2:關閉彈出窗口! 它隱藏......

關閉彈出窗口!

3: ADMOB的選擇!

admob的隱藏選項

4:當然,選擇並啟用它!

啟用它!

5:現在我們可以正確生成配置文件!

生成配置文件

6:我們成功了! 這次,配置文件應該適當地包含api_key

我們做到了!

結論:交互式生成工具的UI有點令人困惑......

您可以再次下載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'
    }

編輯:它在構建apk文件時顯示了一些錯誤。 所以我不得不再次下載json文件。 經過2次試驗,我得到了帶有效api密鑰的json文件。

如果您沒有使用Firebase,則可以在此處找到生成google-services.json配置文件的正確鏈接。

通過https://developers.google.com/cloud-messaging/android/client#get-config重新生成google-services.json, 一個重要的事情是您必須在“選擇服務”步驟中啟用雲消息 ,打開新的Google -services.json文件你會看到像這樣的單詞

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

沒有這個詞或沒有current_key的值不是正確的文件

我能夠通過這里沒有回答的這些步驟來解決這個問題。 這個答案不是啟用雲消息傳遞,它只檢索其服務器密鑰。

首先,轉到Firebase控制台,然后轉到“項目設置”,然后單擊“雲消息傳遞”選項卡。 查看“服務器密鑰”所在的位置,如果沒有長密鑰顯示(不是“發件人ID”編號),請單擊“重新生成密鑰”,現在應顯示一個長密鑰。 復制該密鑰並將其放在google-services.json文件中: "api_key": [ {"current_key" : "key goes here"} ]

這種方法幫助了我,而其他人都沒有工作,所以希望這有助於某人。

在此輸入圖像描述

單擊概述 - >齒輪圖標 - >項目設置。

在此輸入圖像描述

轉到下載最新配置並單擊google-service.json按鈕下載文件並將其保存到app文件夾並再次編譯。 請享用!

您需要將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

使用Firebase

GoogleServices'. > Missing api_key/current_key object

將現有項目更新到新的Firebase服務后,出現此錯誤。 api_key 項目設置頁面下載的生成的google-service.json文件未包含所需的api_key

從其他答案來看,需要添加Google / Firebase雲消息傳遞 (GCM / FCM)才能將此api_key包含在google-service.json文件中。

所以我在再次下載文件之前在firebase FCM上添加了依賴項,這次包含了密鑰。

包括FCM(GCM)

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

如果您不想重新配置和下載google-services.json文件,則可以直接從firebase控制台獲取api密鑰。 去吧

概述>添加其他應用程序> Web

您將獲得包含apiKey數據庫配置。 只需復制該值並將其放在由下面的XXX表示的current_key值中

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

對於firebase遷移器:

確保您在項目設置中添加了至少一個指紋並重新下載google-services.json文件

如果您使用的是firebaes,則必須將serverKey從firebase復制到google-services.json

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

要獲取服務器密鑰,請轉到ProjectOverview>項目設置> CloudMessaging>復制或生成並復制serverKey ..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM