Google सेवा 3.0.0 के साथ Api_key / वर्तमान कुंजी गुम है


157

चूंकि मैंने 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

build.gradle (रूट):

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

build.gradle (ऐप):

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- सेवाओं 2.1.0 में प्ले सर्विस लाइब्रेरी के साथ अच्छी तरह से काम करता है

क्या आपके पास समाधान का कोई विचार है?


मैं नक्शे का उपयोग कर रहा हूं और मेरे पास AndroidManifest.xml फ़ाइल में एपीआई_की परिभाषा है। क्या आपको वहाँ api_key मिला है? कुछ ऐसा है कि <मेटा-डेटा एंड्रॉइड: नाम = "com.google.android.geo.API_KEY" Android: value = "AIzaSdfdfdfdfdfdfdfdfdfdRVxThQsNaqY />>
ग्रेज़ेर्ग्ज बाइलैस्की

हाँ मेरे पास है। मेनिफेस्ट अच्छी तरह से कॉन्फ़िगर किया गया है, यह हमेशा काम करता है .. अब तक।
हथेलियों

जवाबों:


162

नई कॉन्फ़िग फ़ाइल (google-services.json) इससे उत्पन्न करें: https://developers.google.com/cloud-messaging/android/client#get-config

"api_key": [ { "current_key": XXX } ]क्लाइंट सेक्शन में नई कॉन्फिग फाइल

अपडेट करें: या डेवलपर कंसोल में मैन्युअल रूप से सक्षम सेवा और कुंजी उत्पन्न करें।


1
न्यूली फाइल "एपी_की" में है: [{"करंट_की": XXX}]
जोजका जोजिन

1
किस API कुंजी को वहां जाना चाहिए?
मार्को ज़ानेटी

8
यदि आप इसका उपयोग नहीं करते हैं और एक नई json फ़ाइल उत्पन्न करते हैं, तो भी आपको क्लाउड मैसेजिंग को सक्षम करना होगा। जब आप क्लाउड मैसेजिंग को सक्षम करते हैं तो आपको इसके लिए एपीआई कुंजी की आवश्यकता होती है।
राफेल गुतिरेज

2
मैंने JSON फ़ाइल में क्लाउड मैसेजिंग API "api_key": [{"current_key": "the_api_key"}] को सक्षम करके API कुंजी प्राप्त की, लेकिन अभी भी काम नहीं करता है। मैं वास्तव में नहीं जानता कि इसमें क्या गलत है। : - /
मार्को ज़ानेटी

7
कौन जानता है कि यह एपी_के लिए क्या है? इसके बिना ठीक काम हुआ ...
पावेल बिरुकोव

89

Google-services.json फ़ाइल में खाली वर्तमान कुंजी जोड़ने से मेरे लिए यह समस्या हल हो गई

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


1
बस मैंने सोचा कि मैं जोड़ूंगा "api_key" मान "क्लाइंट" मान के अंदर है
जनवरी

2
@ अजाक्स-मैक्स: यह मेरे लिए भी काम किया। क्या आप इतना समझ सकते हैं कि यह क्यों काम करता है?
पिनाडा

1
यदि पुराने GMS क्लाउड मैसेजिंग का उपयोग करना सबसे अच्छा समाधान लगता है। नई कॉन्फ़िगरेशन फ़ाइल फायरबेस को जोड़ने के बजाय जीएमएस कुंजी को बाहर करती है।
गॉर्डनडब्ल्यू

34

हां, जब तक पहली बार Firebase का उपयोग कर रहा हूं, मैं इसका सामना करता हूं। अपने ऐप मेनू पर क्लिक करें और "प्रबंधित करें" पर क्लिक करें।

यहां छवि विवरण दर्ज करें

आप फिर से google-services.json डाउनलोड कर सकते हैं।

यहां छवि विवरण दर्ज करें


2
हाँ, मैंने इसे फिर से डाउनलोड किया और यह अगली बार बड़ी फ़ाइल थी और इसने मेरे लिए इस मुद्दे को ठीक कर दिया
हेटम बदावी

1
मैं पुष्टि कर सकता हूं: मैंने Firebase Analytics के लिए साइन अप किया है और यह स्वचालित रूप से एक google-services.json को डाउनलोड करता है जिसमें कोई API कुंजी नहीं है। फिर मैंने इसे मैन्युअल रूप से इस तरह डाउनलोड किया और एपीआई की कुंजी जसन में थी।
चिचिलाटी

इस डैशबोर्ड पर आने के लिए URL क्या है?
सीन बीच

9

हर किसी के लिए यह समस्या है, इसके लिए, आपको https://developers.google.com/cloud-messaging/android/client#get-config पर अपने ऐप में किसी भी सेवा को जोड़ना होगा

मेरे मामले में मैंने कॉम्फेड (पहले से ही एनालिटिक्स और gcm) जोड़ा है और फिर api_key के साथ फाइल तैयार की गई थी।

मुझे लगता है कि यह एक बग है और जल्द ही ठीक हो जाएगा, तब तक, यह करो।


वास्तव में वहाँ एक बग है ... मैं भी नए json पाने के लिए एप्लिकेशन को आमंत्रित करने के लिए जोड़ दिया था
जीवराज एस शेखावत

नमस्ते, मैंने नया कॉन्फिगर जोड़ा है, लेकिन IDE अभी भी शिकायत कर रहा है कि यह api_key गायब है
कोड

इससे पहले कि आप आईडीई खोलते हैं आप यह सुनिश्चित करने के लिए कॉन्फ़िगर फ़ाइल की जांच कर सकते हैं कि s 'api_key' value. Clearly thereकोई बग है, इसलिए हमें समस्या को हल करने के लिए विभिन्न तरीकों की कोशिश करने की आवश्यकता है।
एल्विस ओलिवेरा

इसका मतलब यह है कि, हर बार मैं अपने ग्रेड फ़ाइल में एक नई निर्भरता जोड़ता हूं, मुझे एक नई google-services.json डाउनलोड करनी होगी क्योंकि यह एक नया एप_की उत्पन्न करता है?
अशोक बिजॉय देबनाथ

8

हालाँकि जोजका जोज़िन का स्वीकृत उत्तर और उसकी टिप्पणियां, क्लाउड मैसेजिंग न तो संबंधित है और न ही आवश्यक है।

फिर भी, फिर से पैदा करना google-services.json समाधान की कुंजी है (इसलिए मैंने उसे वोट दिया)। नीचे मैंने क्या किया है:

जैसा कि आप जानते हैं कि आप Google डेवलपर्स गाइड से एनालिटिक्स के लिए कॉन्फिगर फाइल जनरेट कर सकते हैं

1: अपना ऐप चुनें।

1) एक ऐप चुनें

2: पॉपअप बंद करो! यह छुपाता है ...

पॉपअप बंद करो!

3: ADMOB का विकल्प!

कॉम्बो का छिपा हुआ विकल्प

4, बेशक, इसे चुनें और सक्षम करें!

इसे चालू करो!

5: अब हम सही ढंग से विन्यास फाइल तैयार कर सकते हैं!

कॉन्फ़िगरेशन फ़ाइलें जनरेट करें

6: हमने इसे बनाया है! इस बार, कॉन्फ़िगरेशन फ़ाइल में उचित रूप से api_key शामिल होना चाहिए ।

हमने इसे बनाया!

निष्कर्ष: इंटरएक्टिव जेनरेशन टूल का यूआई थोड़ा भ्रमित करने वाला है ...


1
धन्यवाद, मैं नया विन्यास प्राप्त करने में सक्षम था, लेकिन IDE अभी भी शिकायत कर रहा है कि यह api_key
कोड

एक थोड़ा भ्रमित ... यह भयानक है !!! आपकी स्पष्ट व्याख्या के लिए यश।
नील्स

7

आप google-services.jsonफ़ाइल को फिर से डाउनलोड कर सकते हैं ।

डाउनलोड करने के चरण:

1)। Firebaseकंसोल में अपने ऐप में शीर्ष मेनू पर क्लिक करें।

2)। प्रबंधन पर क्लिक करें।

3)। आपको Download the latest configफ़ाइल विकल्प मिलेगा , डाउनलोड करें और google-services.jsonअपने आवेदन में फ़ाइल को बदलें ।


4

सबसे पहले अपनी JSON फाइल में

बदलने के

"api_key": []

साथ में

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

फिर ग्रेडेल बिल्ड सफल होगा लेकिन जब आप अपना एप्लिकेशन चलाते हैं तो आपको निम्न की तरह त्रुटियां हो सकती हैं।

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

इस समस्या को ठीक करने के लिए आप अपनी एप्लिकेशन में निम्न फ़ाइल जोड़ सकते हैं। मेरे लिए यह काम किया।

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

संपादित करें: इसने मुझे एपीके फाइल बनाते समय कुछ त्रुटि दिखाई। इसलिए मुझे फिर से json फाइल डाउनलोड करनी पड़ी। 2 परीक्षण के बाद मुझे वैध एपीआई कुंजी के साथ जसन फाइल मिली।


3

यदि आप Firebase का उपयोग नहीं कर रहे हैं, तो google-services.json config फ़ाइल बनाने के लिए सही लिंक वास्तव में यहां पाया गया है


2

https://developers.google.com/cloud-messaging/android/client#get-config पर google-services.json को पुनर्जीवित करें , एक महत्वपूर्ण बात यह है कि आपको "संदेश सेवाएं" चरण में क्लाउड मैसेजिंग सक्षम करना होगा , नया Google खोलें -services.json फ़ाइल आपको जैसे शब्द दिखाई देंगे

    "api_key": [
     {
       "current_key": "xxxxxxxxxxx"
     }"

इस शब्द के बिना या current_key के मान के बिना सही फ़ाइल नहीं है


2

मैं इस समस्या को इन चरणों के साथ हल करने में सक्षम था जो यहां उत्तर नहीं हैं। यह उत्तर क्लाउड मैसेजिंग को सक्षम नहीं कर रहा है, यह केवल इसकी सर्वर कुंजी को पुनर्प्राप्त कर रहा है।

इसलिए पहले, फायरबेस कंसोल पर जाएं, और फिर प्रोजेक्ट सेटिंग्स पर जाएं, और फिर "क्लाउड मैसेजिंग" टैब पर क्लिक करें। देखो जहाँ यह "सर्वर कुंजी" कहता है और अगर कोई लंबी कुंजी प्रदर्शित नहीं होती है ("प्रेषक आईडी" संख्या नहीं) तो "पुनर्जीवित कुंजी" पर क्लिक करें और एक लंबी कुंजी को अब दिखाना चाहिए। उस कुंजी की प्रतिलिपि बनाएँ और इसे अपनी google-services.json फ़ाइल में रखें:"api_key": [ {"current_key" : "key goes here"} ] :।

इस विधि ने मेरी मदद की जबकि कोई भी अन्य काम नहीं कर रहा था, इसलिए उम्मीद है कि इससे किसी को मदद मिलेगी।


2

यहां छवि विवरण दर्ज करें

ओवरव्यू -> गियर आइकन -> प्रोजेक्ट सेटिंग्स पर क्लिक करें।

यहां छवि विवरण दर्ज करें

डाउनलोड करने के लिए नवीनतम कॉन्फिगरेशन पर जाएं और फाइल डाउनलोड करने के लिए google-service.json बटन पर क्लिक करें और इसे फिर से एप फोल्डर और कंपाइल में सेव करें। का आनंद लें!


2

आपको अपने प्रोजेक्ट में SHA सर्टिफिकेट फ़िंगरप्रिंट जोड़ने होंगे और फिर google-services.jason फ़ाइल को फिर से डाउनलोड करना होगा, जिसमें "api_key": [{"current_key": "xxxxxx"}] स्वचालित रूप से होना चाहिए।

आप उंगलियों के निशान उत्पन्न करने के तरीके को देखने के लिए निम्न पृष्ठ देख सकते हैं:

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

विंडोज़ पर, बस निम्नलिखित कमांड को निष्पादित करें, और डिबग उद्देश्य के लिए पासवर्ड के रूप में एंड्रॉइड का उपयोग करें:

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

1

फायरबेस का उपयोग करना

GoogleServices'. > Missing api_key/current_key object

मुझे मौजूदा प्रोजेक्ट को नई फायरबेस सर्विसेज में अपडेट करने के बाद यह त्रुटि मिली। फायरबेस प्रोजेक्ट सेटिंग्स पेज से डाउनलोड की गई जेनरेट की गई google-service.json फाइल में जरूरत नहीं थी।api_key

यहाँ अन्य उत्तरों से ऐसा लगता है कि Google / Firebase Cloud Messaging (GCM / FCM) api_keyको google-service.jsonफ़ाइल में शामिल करने के लिए इसे जोड़ने की आवश्यकता है ।

इसलिए मैंने फाइल को दोबारा डाउनलोड करने से पहले फायरबेस एफसीएम पर एक निर्भरता जोड़ी, और इस बार कुंजी को शामिल किया गया।

FCM (GCM) शामिल करें

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

1

यदि आप google-services.jsonफ़ाइल को फिर से कॉन्फ़िगर और डाउनलोड नहीं करना चाहते हैं, तो आप फायरबेज कंसोल से सीधे एपी कुंजी प्राप्त कर सकते हैं। बस जाना है

अवलोकन> एक और ऐप जोड़ें> वेब

आपको अपने डेटाबेस के लिए कॉन्फ़िगरेशन मिलेगा जिसमें सम्‍मिलित होगा apiKey। बस उस मूल्य की प्रतिलिपि बनाएँ और current_keyनीचे दिए गए XXX द्वारा निर्दिष्ट मूल्य में रखें

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

0

फायरबेस प्रवासियों के लिए:

सुनिश्चित करें कि आपने अपनी परियोजना सेटिंग में कम से कम एक फ़िंगरप्रिंट जोड़ा है और google-services.json फ़ाइल को फिर से डाउनलोड किया है


धन्यवाद आदमी, मैं कोड लैब निर्देशों के अनुसार चला गया और पहले SHA1 कुंजी नहीं जोड़ा। बाद में मुझे अपने ApiKey के रूप में जोड़ना पड़ा - CurrentKey गायब था। यकीन नहीं होता कि ऐसा था या नहीं। लेकिन इससे मेरी समस्या हल हो गई।
राणा रणविजय सिंह

0

यदि आप फायरबैक्स का उपयोग कर रहे हैं, तो आपको सर्वरबेस को फायरबेस से google-services.json में कॉपी करना होगा

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

सर्वर कुंजी प्राप्त करने के लिए, Goto ProjectOverview> प्रोजेक्ट सेटिंग्स> CloudMessaging> कॉपी या जेनरेट करें और सर्वर की प्रतिलिपि बनाएँ ..


0

इसे अपनी google-service.json फ़ाइल में जोड़ें। आपको यह ऐप / google-service.json के तहत मिलेगा

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.