![](/img/trans.png)
[英]Missing api_key/current key with Google Services 3.0.0 and Maps API key in build.gradle
[英]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": "" }]
對於遇到此問題的所有人,目前,您需要在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:選擇您的應用。
2:關閉彈出窗口! 它隱藏......
3: 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"} ]
。
這種方法幫助了我,而其他人都沒有工作,所以希望這有助於某人。
您需要將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
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.