Fehlender api_key / aktueller Schlüssel mit Google Services 3.0.0 und Google Maps API-Schlüssel in build.gradle
mein Problem ist ganz ähnlich wie Fehlt api_key/aktuelle-Schlüssel (mit Google-Dienste 3.0.0 aber mit einer weiteren Ebene von Komplexität.
Ich meine aktualisierten app heute morgen auf com.google.gms:google-Dienste:3.0.0-und alle spielen-services 9.0.0 Abhängigkeiten
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'
Nun bekomme ich den berüchtigten Fehler
Error:Execution failed for task ':hotelsclick:processDebugGoogleServices'. > Fehlt api_key/current_key Objekt
Scheint dies aufgrund einer fehlenden API-key in die google-Dienste.json-Datei (so wurde mir gesagt). Ich habe einen neuen API-key von https://developers.google.com/cloud-messaging/android/client#get-config und fand das folgende Feld.
"api_key": [],
Ich glaube, ich sollte meine Google-Maps-API-key drin, aber hier kommt es das doppelte Problem, das ich betroffen bin:
1 - wenn ich versuche den Schlüssel in das Feld ein, funktioniert es nicht. Ich habe versucht, mit beiden
"api_key": [{ "current_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE" }],
und
"api_key": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-AE"],
der Fehler bleibt der gleiche.
2 - ich habe mit gradle, um die Verwendung dynamische Gebäude. Lege ich das folgende in mein Modul zu bauen.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'
}
}
In der Androidmanifest.xml Datei habe ich
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_api_key" />
Nun, es ist immer arbeiten, bis ich aktualisiert, um die Google-Dienste 3.0.0, verstehe ich nicht, warum es nicht funktioniert jetzt. Sollte es nicht schnappen Sie sich den richtigen API-key von der kompilierten build.gradle-Datei und legen Sie es im manifest?
Also meine Doppel-Frage ist: warum nicht die dynamische API-key Holen mehr funktioniert? Und wie kann ich dieses Problem beheben?
Danke
InformationsquelleAutor der Frage Marco Zanetti | 2016-05-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, indem Sie eine leere "current_key" wie folgt:
Sehen, wie das geht.
BEARBEITEN:
Ersetzen Sie "api_key": [] (befindet sich in "client") mit "api_key": [{ "current_key": "" }]
InformationsquelleAutor der Antwort Nitrodbz
War ich in der Lage, dieses problem zu lösen, müssen Sie die folgenden Schritte, die hier nicht beantwortet. Diese Antwort ist NICHT für die Nutzung von Cloud-Messaging, ist es nur abrufen seiner server-Schlüssel. (Klärung, weil meine Antwort gelöscht wurde, um ein "Duplikat", wenn es gar nicht).
Also Erstens, FB-Konsole, und fahren Sie dann auf Projekt-Einstellungen, und klicken Sie dann auf die Registerkarte "Cloud Messaging". Schauen, wo es heißt "server-Schlüssel" und wenn es keine lange-Taste die Anzeige (nicht die "Sender ID" - Nummer) klicken Sie auf "neu generieren Key" und einen langen Schlüssel sollte nun zeigen. Kopieren Sie diesen Schlüssel und legen Sie Sie in Ihrem google-services.json-Datei an:
"api_key": [ {"current_key" : "key goes here"} ]
.Diese Methode hat mir geholfen, während keiner der anderen waren arbeiten, so dass ich hoffe, dies hilft jemand.
InformationsquelleAutor der Antwort David Velasquez
Dieses problem, das Sie Gesicht nach der Verwendung von neuen build-tool
classpath 'com.google.gms:google-services:3.0.0'
,Einfach erstellen Sie Ihre "google-Dienste.json". es wird gelöst werden, hoffentlich.
InformationsquelleAutor der Antwort Sadman Samee
Wenn Sie versehentlich entfernt den Schlüssel, oder Sie können es nicht zurückbekommen erstellen Sie eine neue api-Berechtigung hier und nennen Sie es " genau "Android-Schlüssel (automatisch erstellt durch Google-Dienst". Diese erhalten Ihre Berechtigung zurück zu den google-services-json.
InformationsquelleAutor der Antwort droidpl
In Android Studiogibt es das Konzept der build-Typen und Geschmacksrichtungen und Sie können diese nutzen, um zu bekommen, was Sie brauchen. Build-Typen sind verschiedene Versionen der app, die funktionell identisch, aber unterscheiden sich in debugging-code. Standardmäßig, alle Android-Gradle-Projekte haben, die debug-und release-build-Typen.
Darüber hinaus können Sie hinzufügen Google Maps Aktivität zu Ihrem Projekt und Android Studio generieren, die notwendigen Dateien für Sie, Sie müssen nur legen Sie Ihre Schlüssel.
Da Sie mit gradle, können Sie Folgendes tun:
bauen.gradle
AndroidManifest.xml
Diese Weise müssen Sie nur eine AndroidManifest.xml und Sie legen Wert auf Ihr bauen geben.
Können Sie auch überprüfen, diese manifest-Platzhalter: http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Placeholder-support
InformationsquelleAutor der Antwort Android Enthusiast
Müssen Sie es aktivieren, Cloud-Messaging, auch wenn Sie es nicht verwenden, und generieren Sie eine neue json-Datei. Wenn Sie aktivieren Sie die Cloud-Messaging Sie erhalten den API-key benötigen Sie für es.
Vielleicht brauchen Sie jede andere Dienstleistung, sehen Sie dies:
https://stackoverflow.com/a/37358432/4408810
InformationsquelleAutor der Antwort Rafael Gutiérrez