Google Services 3.0.0'da eksik api_key / geçerli anahtar


157

Projeyi google hizmetleri ve kitaplıklarının (9.0.0) en son sürümüyle yükselttiğim için şu garip sorunum var:

Hata derlemesi

Sınıf konsolu:

: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 (kök):

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
    classpath 'com.google.gms:google-services:3.0.0'
}

build.gradle (uygulama):

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'

Bununla birlikte, 8.4.0'daki oyun hizmeti kitaplıkları ve google-services 2.1.0 ile iyi çalışır

Çözüm hakkında bir fikriniz var mı?


Haritalar kullanıyorum ve AndroidManifest.xml dosyasında tanımlanan api_key var. Orada api_key var mı? Böyle bir şey <meta-data android: name = "com.google.android.geo.API_KEY" android: value = "AIzaSdfdfdfdfdfdfdfdfRRVxThQsNaqY" />
Grzegorz Bielański 19:16

Evet sahibim. Manifest iyi yapılandırılmış, her zaman işe yaradı .. şimdiye kadar.
palmsnipe

Yanıtlar:


162

Https://developers.google.com/cloud-messaging/android/client#get-config adresinden yeni yapılandırma dosyası (google-services.json) oluşturun

"api_key": [ { "current_key": XXX } ]İstemci bölümünde ile yeni yapılandırma dosyası

Güncelleme: veya geliştirici konsolunda manuel olarak etkinleştirilen hizmet ve anahtar oluşturun.


1
Yeni "api_key" conf dosyasında: [{"current_key": XXX}]
Jozka Jozin

1
Hangi API anahtarı oraya gitmeli?
Marco Zanetti

8
Cloud Messaging'i, kullanmasanız ve yeni bir json dosyası oluştursanız bile etkinleştirmeniz gerekir. Cloud Messaging'i etkinleştirdiğinizde API anahtarının buna ihtiyacı vardır.
Rafael Gutiérrez

2
Cloud Messaging API "api_key": [{"current_key": "the_api_key"}] 'yi etkinleştirerek JSON dosyasında API anahtarını aldım, ancak yine de çalışmıyor. Neyin yanlış olduğunu gerçekten bilmiyorum. : - /
Marco Zanetti

7
Bu api_key'in ne için olduğunu kim bilebilir? Daha önce onsuz iyi çalıştı ...
Pavel Biryukov

89

Google-services.json dosyasına boş geçerli anahtar değeri eklemek bu sorunu benim için çözdü

"api_key": [{ "current_key": "" }]


1
Tıpkı "api_key" değer "müşteri" değeri içinde olduğunu eklemek düşündüm
Ocak

2
@Ajax -The Max: Bu benim için de işe yaradı. Bunun neden işe yaradığını açıklayacak kadar kibar olabilir misiniz?
Pineda

1
eski GMS bulut mesajlarını kullanıyorsanız bu en iyi çözüm gibi görünüyor. Yeni yapılandırma dosyası, Firebase eklemek yerine GMS anahtarını hariç tutar.
GordonW

34

Evet, Firebase ile ilk kez kullandığım gibi, bunun gibi karşı karşıyayım. Uygulama menünüze tıklayın ve "Yönet" e tıklayın.

resim açıklamasını buraya girin

google-services.json dosyasını tekrar indirebilirsiniz.

resim açıklamasını buraya girin


2
evet tekrar indirdim ve bir dahaki sefere daha büyük dosya oldu ve bu benim için sorunu düzeltmek
Hatem Badawi

1
Onaylayabilirim: Firebase Analytics'e kaydoldum ve otomatik olarak API anahtarı içermeyen bir google-services.json indirdi. Sonra böyle böyle manuel olarak indirildi ve API anahtarı json oldu.
17'de chichilatte

Bu gösterge tablosuna ulaşmak için URL nedir?
Sean Beach

9

Bu sorunu yaşayan herkes için şimdilik uygulamanıza https://developers.google.com/cloud-messaging/android/client#get-config adresinden herhangi bir hizmet eklemeniz gerekir

Benim durumumda admob ekledim (zaten analitik ve gcm var) ve daha sonra dosya api_key ile oluşturuldu.

Bence bu bir hata ve yakında düzeltilecek, bunu yapana kadar.


gerçekten bir hata var ... Ben yeni json almak için de uygulama davetiyeleri eklemek zorunda
Jivraj S Shekhawat

merhaba, ben yeni yapılandırma ekledim, ama IDE hala eksik api_key
kodu

IDE'yi açmadan önce s 'api_key' value. Clearly there, bir hata olduğundan emin olmak için yapılandırma dosyasını kontrol edebilirsiniz , bu nedenle sorunu çözmek için farklı yaklaşımları denememiz gerekir.
Elvis Oliveira

Bu, gradle dosyama her yeni bağımlılık eklediğimde, yeni bir api_key oluşturduğundan yeni bir google-services.json indirmem gerektiği anlamına mı geliyor?
Ashok Bijoy Debnath

8

Jozka Jozin'in cevabı ve yorumları kabul etmesine rağmen, Cloud Messaging ne ilgili ne de gerekli.

Yine de, yeniden üretmek google-services.jsonçözümün anahtarıdır (ben de ona oy verdim). Aşağıda yaptığım şey:

Bildiğiniz gibi, Google Developers Guide'dan Analytics için yapılandırma dosyasını oluşturabilirsiniz .

1: Uygulamanızı seçin.

1) bir uygulama seçin

2: Açılır pencereyi kapat! Gizler ...

Açılır pencereyi kapat!

3: ADMOB SEÇENEĞİ!

gizli admob seçeneği

4 course Tabii ki seçin ve etkinleştirin!

onu etkinleştir!

5: Şimdi doğru şekilde yapılandırma dosyaları oluşturabiliriz!

yapılandırma dosyaları oluştur

6: Başardık! Bu kez yapılandırma dosyası api_key anahtarını uygun şekilde içermelidir .

başardık!

Sonuç: Etkileşimli oluşturma aracının kullanıcı arayüzü biraz kafa karıştırıcı ...


1
teşekkürler, ben yeni yapılandırma almak başardı, ama IDE hala eksik api_key
kod

Bir bit O korkunçtur ... kafa karıştırıcı !!! Açık açıklama için Kudos.
Niels

7

google-services.jsonDosyayı tekrar indirebilirsiniz .

İndirme adımları:

1). FirebaseKonsolda uygulamanızın üst menüsünü tıklayın .

2). Yönet'i tıklayın.

3). Download the latest configDosya seçeneğini bulacaksınız , google-services.jsondosyayı uygulamanıza indirip değiştirin .


4

İlk olarak JSON dosyanızda

değiştirmek

"api_key": []

ile

"api_key": [{ "current_key": "" }]

Daha sonra sınıf oluşturma başarılı olur ancak uygulamanızı çalıştırdığınızda aşağıdaki gibi hatalar alabilirsiniz.

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

Bu sorunu gidermek için app.gradle dosyanıza aşağıdakileri ekleyebilirsiniz .. Benim için çalıştı.

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'
    }

Düzenleme: Daha sonra apk dosyasını oluştururken bana bazı hatalar gösterdi. Bu yüzden json dosyasını tekrar indirmek zorunda kaldım. 2 denemeden sonra geçerli bir api anahtarıyla json dosyasını aldım.


3

Firebase kullanmıyorsanız, google-services.json yapılandırma dosyasını oluşturmak için doğru bağlantı burada bulunur .



2

Bu sorunu burada yanıtlanmayan adımlarla çözebildim. Bu yanıt Cloud Messaging'i etkinleştirmiyor, sadece sunucu anahtarını alıyor.

İlk olarak, Firebase Konsolu'na gidin ve ardından Proje Ayarları'na gidin ve ardından "Bulut Mesajlaşma" sekmesine tıklayın. "Sunucu anahtarı" yazan yere bakın ve görüntülenen uzun bir anahtar yoksa ("Gönderen Kimliği" numarası değil) "Anahtarı Yeniden Oluştur" u tıklayın ve şimdi uzun bir anahtar görünmelidir. Bu anahtarı kopyalayın ve şu adresteki google-services.json dosyanıza yerleştirin:"api_key": [ {"current_key" : "key goes here"} ] .

Bu yöntem, diğerlerinin hiçbiri çalışmadığı sırada bana yardımcı oldu, umarım bu birine yardımcı olur.


2

resim açıklamasını buraya girin

Genel Bakış -> Dişli çark simgesi -> Proje ayarları'nı tıklayın.

resim açıklamasını buraya girin

En son yapılandırmayı indir'e gidin ve dosyayı indirmek ve uygulama klasörüne kaydetmek ve tekrar Derlemek için google-service.json düğmesini tıklayın. Zevk almak!


2

Projenize SHA sertifikası parmak izleri eklemeniz ve sonra otomatik olarak "api_key": [{"current_key": "xxxxxx"}] içermesi gereken google-services.jason dosyasını tekrar indirmeniz gerekir.

Parmak izlerinin nasıl oluşturulacağını görmek için aşağıdaki sayfayı görüntüleyebilirsiniz:

https://developers.google.com/android/guides/client-auth

Windows'da, aşağıdaki komutu yürütün ve hata ayıklama amacıyla android'i şifre olarak kullanın:

keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

1

Firebase'i kullanma

GoogleServices'. > Missing api_key/current_key object

Mevcut bir projeyi yeni Firebase Hizmetlerine güncelledikten sonra bu hatayı aldım. Firebase proje ayarları sayfasından indirilen oluşturulan google-service.json dosyası gerekenleri içermiyordu api_key.

Buradaki diğer yanıtlardan , bunun dosyaya dahil edilmesi için Google / Firebase Bulut Mesajlaşma'nın (GCM / FCM) eklenmesi gerektiği anlaşılıyor .api_keygoogle-service.json

Bu yüzden dosyayı tekrar indirmeden önce firebase FCM'ye bir bağımlılık ekledim ve bu sefer anahtar dahil edildi.

FCM'yi (GCM) dahil et

dependencies {
     compile 'com.google.firebase:firebase-messaging:9.0.0'
}

1

google-services.jsonDosyayı yeniden yapılandırmak ve indirmek istemiyorsanız , api anahtarını doğrudan firebase konsolundan alabilirsiniz. Sadece git

Genel Bakış> Başka Uygulama Ekle> Web

İçerecek veritabanınız için yapılandırma alacaksınız apiKey. Bu değeri kopyalayın ve current_keyaşağıdaki XXX ile belirtilen değere yerleştirin.

"api_key": [{ "current_key": "XXX" }]

0

Firebase göçmenleri için:

proje ayarlarınıza en az bir Parmak İzi eklediğinizden emin olun ve google-services.json dosyasını tekrar indirin


Teşekkürler adamım, kod laboratuarı talimatlarına göre gittim ve ilk başta SHA1 anahtarı eklemedim. Sonra ApiKey - CurrentKey eksik olarak eklemek zorunda kaldı. Durumun bu olup olmadığından emin değilim. Ama sorunumu çözdü.
Rana Ranvijay Singh

0

Firebaes kullanıyorsanız, serverKey öğesini firebase'den google-services.json'a kopyalamanız gerekir

 "api_key": [{ "current_key": "SERVER_KEY"}

Sunucu Anahtarını almak için, Project'e Genel Bakış> Proje Ayarları> CloudMessaging> Kopyala VEYA sunucu anahtarını oluştur ve kopyala.


0

bunu google-service.json dosyanıza ekleyin. app / google-service.json altında bulabilirsiniz

"api_key": [{"current_key": "your-google-api-key"}]

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.