Mar*_*tti 35 android google-maps google-play-services android-gradle-plugin
我的问题非常类似于使用Google Services 3.0.0丢失api_key /当前密钥,但复杂程度更高.
我今天早上将我的应用更新到com.google.gms:google-services:3.0.0以及所有play-services 9.0.0依赖项
compile 'com.google.android.gms:play-services-analytics:9.0.0'
compile 'com.google.android.gms:play-services-ads:9.0.0'
compile 'com.google.android.gms:play-services-identity:9.0.0'
compile 'com.google.android.gms:play-services-gcm:9.0.0'
Run Code Online (Sandbox Code Playgroud)
现在我得到了臭名昭着的错误
错误:任务':hotelsclick:processDebugGoogleServices'的执行失败.>缺少api_key/current_key对象
这似乎是由于google-services.json文件中缺少API密钥(所以我被告知).我从https://developers.google.com/cloud-messaging/android/client#get-config获取了一个新的API密钥,并在其中找到了以下字段.
"api_key": [],
Run Code Online (Sandbox Code Playgroud)
我想我应该把我的Google Maps API密钥放在那里,但是这里出现了我遇到的双重问题:
1-如果我尝试将密钥放在该字段内,则不起作用.我试过两个
"api_key": [{ "current_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE" }],
Run Code Online (Sandbox Code Playgroud)
和
"api_key": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE"],
Run Code Online (Sandbox Code Playgroud)
错误保持不变.
2-我一直在使用gradle来使用动态建筑.我将以下内容放在我的模块build.gradle中:
buildTypes {
release {
minifyEnabled true
shrinkResources true
debuggable false
resValue "string", "google_maps_api_key", "ABCDEFGHILMNO... my maps release API key"
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
zipAlignEnabled true
}
debug {
resValue "string", "google_maps_api_key", "ZNTMRNCDNR... my google maps debug API key"
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Androidmanifest.xml文件中
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_api_key" />
Run Code Online (Sandbox Code Playgroud)
现在,它一直在工作,直到我更新到Google Services 3.0.0,我不明白为什么它现在不起作用.它不应该从已编译的build.gradle文件中获取正确的API密钥并将其放入清单中吗?
所以我的双重问题是:为什么动态API密钥取出不再起作用?我该如何解决这个问题?
谢谢
Nit*_*dbz 72
您是否尝试过如下所示的空"current_key":
"api_key": [{ "current_key": "" }]
Run Code Online (Sandbox Code Playgroud)
看看情况如何.
编辑:您应该用"api_key"替换"api_key":[](位于"客户端"):[{"current_key":""}]
我能够通过这里没有回答的这些步骤来解决这个问题.这个答案不是启用云消息传递,它只检索其服务器密钥.(澄清是因为我的答案在完全没有时被删除为'重复').
首先,转到Firebase控制台,然后转到"项目设置",然后单击"云消息传递"选项卡.查看"服务器密钥"所在的位置,如果没有长密钥显示(不是"发件人ID"编号),请单击"重新生成密钥",现在应显示一个长密钥.复制钥匙,并将其放置在你的谷歌,services.json文件在:"api_key": [ {"current_key" : "key goes here"} ].
这种方法帮助了我,而其他人都没有工作,所以希望这有助于某人.
| 归档时间: |
|
| 查看次数: |
17620 次 |
| 最近记录: |