Google服务3.0.0版缺lessapi_key /当前键
由于我升级了最新版本的谷歌服务和库(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中的播放服务库
你有什么想法的解决scheme?
从以下位置生成新的configuration文件(google-services.json): https : //developers.google.com/cloud-messaging/android/client#get-config
在客户端部分新configuration文件"api_key": [ { "current_key": XXX } ]
更新:或在开发人员控制台中手动启用服务并生成密钥。
在google-services.json文件中添加空的当前键值为我解决了这个问题
"api_key": [{ "current_key": "" }]
是的,对于第一次使用Firebase,我面对这样的。点击你的应用程序菜单,然后单击“pipe理”。
你可以再次下载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生成configuration文件。
1:select你的应用程序。
2:closurespopup窗口! 它隐藏了…
3: ADMOB的select!
4:当然,select并启用它!
5:现在我们可以正确的生成configuration文件了!
6:我们做到了! 这一次,configuration文件应该适当地包含api_key 。
结论:交互式生成工具的用户界面有点混乱…
您可以再次下载google-services.json
文件。
下载步骤:
1)。 点击Firebase
控制台中应用的顶部菜单。
2)。 点击pipe理。
3)。 你会发现Download the latest config
文件选项,下载并replace应用程序中的google-services.json
文件。
如果您不使用Firebase,则可以在此处find正确的链接来生成google-services.jsonconfiguration文件。
首先在你的JSON文件中
更换
"api_key": []
同
"api_key": [{ "current_key": "" }]
然后,gradle build会成功,但是当你运行你的应用程序时,你可能会得到像下面这样的错误。
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' }
编辑:它后来显示我一些错误,同时build立apk文件。 所以我不得不再次下载json文件。 2次试用后,我得到了一个有效的API密钥的JSON文件。
通过https://developers.google.com/cloud-messaging/android/client#get-config重新生成google-services.json,; 重要的一点是您必须在“Choose services”步骤中启用Cloud Messaging ,打开新的Google -services.json文件,你会看到像
"api_key": [ { "current_key": "xxxxxxxxxxx" }"
没有这个词或没有current_key的值是不正确的文件
点击概览 – >齿轮图标 – >项目设置。
去下载最新的configuration,并点击google-service.jsonbutton下载文件,并将其保存到应用程序文件夹,再次编译。 请享用!
使用Firebase
GoogleServices'. > Missing api_key/current_key object
在将现有项目更新到新的Firebase服务后,我收到了此错误。 从api_key
项目设置页面下载的生成的google-service.json文件不包含所需的api_key
。
从这里的其他答案看来,需要为此
api_key
添加Google / Firebase云消息传递 (GCM / FCM),以将其包含在google-service.json
文件中。
所以我在再次下载文件之前在firebase FCM上添加了一个依赖关系,这一次包含了密钥。
包括FCM(GCM)
dependencies { compile 'com.google.firebase:firebase-messaging:9.0.0' }
我用这些在这里没有回答的步骤解决了这个问题。 这个答案是不启用云消息传递,它只是检索其服务器密钥。
首先,请转到Firebase控制台,然后转到“项目设置”,然后单击“Cloud Messaging”选项卡。 看看它说的“服务器密钥”,如果没有长键显示(不是“发件人ID”号码)点击“重新生成密钥”,现在应该显示一个长键。 复制该密钥并将其放置在您的google-services.json文件中: "api_key": [ {"current_key" : "key goes here"} ]
。
这种方法帮助我,而其他人都没有工作,所以希望这可以帮助别人。
如果您不想重新configuration并下载google-services.json
文件,则可以直接从Firebase控制台获取api密钥。 只要去
概述>添加另一个应用程序> Web
你将得到你的数据库的configuration将包含apiKey
。 只需复制该值并将其放置在下面的XXX所表示的current_key
值中即可
"api_key": [{ "current_key": "XXX" }]
对于Firebase迁移者:
确保在项目设置中至less添加了一个指纹,然后重新下载google-services.json文件