自从我使用最新版本的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
Run Code Online (Sandbox Code Playgroud)
build.gradle(root):
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
classpath 'com.google.gms:google-services:3.0.0'
}
Run Code Online (Sandbox Code Playgroud)
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'
Run Code Online (Sandbox Code Playgroud)
但是,它适用于8.4.0和google-services 2.1.0中的播放服务库
你对这个解决方案有什么看法吗?
我的问题非常类似于使用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) android google-maps google-play-services android-gradle-plugin
我对GCM Sender ID和API密钥感到困惑.我负责构建第三方服务器,该服务器将向Android应用程序发送通知.
我必须在服务器端存储哪一个?API密钥或发件人ID?谁负责创建Android开发人员或我?