त्रुटि: स्थिति {statusCode = DEVELOPER_ERROR, रिज़ॉल्यूशन = अशक्त}


102

मैं usplus साइन इन कर रहा हूँ, और यह त्रुटि उस समय हो रही है जब मैं onActivityResult में हूँ ...।

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
    client.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 0) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {

            GoogleSignInAccount acct = result.getSignInAccount();
//                Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());

            mEmail = acct.getEmail();
            String mFullName = acct.getDisplayName();
            String mGoogleplusId = acct.getId();


            SocialUser user = new SocialUser();
            user.setType("googleplus");

            user.setEmail(mEmail);
            user.setFullname(mFullName);
            user.setId(mGoogleplusId + "");
            loginParams.put("email_id", mEmail);
            loginParams.put("googlePlusId", mGoogleplusId);
            loginParams.put("full_name", mFullName);
            loginParams.put("registrationType", "googleplus");
            SignUpService(user);


        } else {
            Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
        }
    }
}

और मैं बटन क्लिक पर gplus लॉगिन के लिए कह रहा हूँ। कोड का पालन करते हुए बटन पर क्लिक किया जाता है।

 GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)

            .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
            .build();


    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, 0);

और मैं इस त्रुटि का geetng हूं ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

इस लाइन पर ...।

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

कृपया उपाय बताएं।


1
आवेदन गलत है। Google api कॉन्फ़िगरेशन की जाँच करें।
1'आफ्स

6
हां लेकिन मुझे यह पता नहीं चल पा रहा है कि क्या गलत है।
गुरविंदर सिंह

मैं फायरबेस का उपयोग नहीं करता। मेरा समाधान यहां देखें: stackoverflow.com/a/46828895/1160216
माइक मिलर

जवाबों:


213

आपको अपने SHA1 कुंजी को फायरबेस कंसोल कॉन्फ़िगरेशन में जोड़ने की आवश्यकता है। आप इसे इस तरह से कर सकते हैं:

फायरबेस कंसोल ( https://console.firebase.google.com ) -> आपकी परियोजना -> कॉन्फ़िगरेशन -> स्क्रॉल करें

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

आप अपने SHA1 कुंजी को "साइनिंग रिपोर्ट" Android स्टूडियो से प्राप्त कर सकते हैं:

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

फिर, "रन टैब" देखें और बटन पर क्लिक करें:

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

मुझे लगता है कि यह आसान तरीका है। उममीद है कि इससे मदद मिलेगी।


1
यहां Google डेवलपर कंसोल से SHA-1 रिलीज़ करने का सबसे आसान तरीका है: stackoverflow.com/a/50124038/4923891
eren130

मुझे यह समझने में समस्या हुई कि फायरबाॅस कंसोल में उस SHA कुंजी को कहां रखा जाए। अंत में मिल गया। प्रोजेक्ट सेटिंग खोलें> स्क्रॉल डाउन करें, फ़िंगरप्रिंट जोड़ें, अपनी SHA कुंजी वहां>> नई google-services.json डाउनलोड करें और इसे android-app \ app
paakjis

1
ध्यान दें! भले ही फायरबेस कंसोल में SHA-256 कुंजी हैश के लिए जगह है, लेकिन आपको SHA-1 कुंजी दर्ज करनी होगी। SHA-256 अभी भी आपको त्रुटियां देगा
f.khantsis

सहायक। धन्यवाद!
पूजा

30

संभवतः आपने अपने उत्पादन टोकन के SHA1 का उपयोग करके कॉन्फ़िगरेशन फ़ाइल बनाई है, androiddebugkeyअपने ऐप के डीबग संस्करण के समान SHA1 को इकट्ठा करने के लिए अन्य का उपयोग करें और कॉन्फ़िगरेशन फ़ाइल को 'ऐप' निर्देशिका में कॉपी करें, आपके पास दोनों कॉन्फ़िगरेशन फ़ाइल (एक होना चाहिए) डिबग उद्देश्य और उत्पादन पर्यावरण के लिए एक और)।

Https://developers.google.com/identity/sign-in/android/start में प्रकाशित वॉकथ्रू के आधार पर


5
जब OAuth 2.0 क्लाइंट आईडी के लिए Android क्लाइंट के बजाय मैंने वेब क्लाइंट क्रेडेंशियल्स पर स्विच किया तो मेरी त्रुटि ठीक हो गई। शब्द अभी भी मुझे भ्रमित करता है क्योंकि मैं एक एंड्रॉइड ऐप विकसित कर रहा हूं जो एक वेब सर्वर से बात करता है ... लेकिन त्रुटि कम से कम हो गई है
बर्टिटो

12

मेरे पास एक ही मुद्दा था और मुझे ये कदम उठाकर काम करना पड़ा:

1.Ab DEBUG_KEYSTORE SHA1 फिंगरप्रिंट को फायरबेस प्रोजेक्ट में भेजें। निम्न कमांड का उपयोग करें (MAC / LINUX)

  keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore  

2.अब अपनी परियोजना के एक हस्ताक्षरित पीढ़ी उत्पन्न करें। इस प्रक्रिया में आपके ऐप के रिलीज़ संस्करण के लिए एक कीस्टोर उत्पन्न करना शामिल है।

  Copy the path of the newly generated .jks file.

3.अब निम्न आदेश का उपयोग करके RELEASE_KEYSTORE SHA1 फिंगरप्रिंट उत्पन्न करें

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

4. नए SHA1 को आउटपुट से हटाएं और अपने फायरबेस एप्लिकेशन कंसोल में एक और SHA1 फिंगरप्रिंट के रूप में जोड़ें।

अब आप जाने के लिए अच्छे हैं! ---- आशा है! यह मदद करता है।


जारी किया गया sha1 केवल रखने के बाद भी इस त्रुटि को पा रहा है, google_services.xml को Google साइन इन, एनालिटिक्स और gcm, सिंगल फ़ाइल के लिए जनरेट करें
हर्षा

सुनिश्चित करें कि आपका sha1 ऐप के 'रिलीज़' संस्करण का है, न कि 'डीबग' संस्करण का
उदित कपाही

हा हां, मैं साइन इन एपीके जनरेट कर रहा हूं और ऐपस्टोर में भी प्रकाशित किया गया है, जो किक्स और किस्टोर पासवर्ड केवल उपयोग कर रहा है
हर्ष

मेरा खुला ssl खुलता है -sl-0.9.8k_WIN32 विकास के लिए प्रीवियस का उपयोग कर रहा हूँ
हर्ष

keytool पासवर्ड की आवश्यकता होती है : "एंड्रॉइड"
गुगली

11

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

जिस तरह से मैंने तय किया वह हाइलाइट किए गए पाठ के अनुरूप कुंजी को उठाकर था। फायरबेस के प्रलेखन पृष्ठ I में 'सर्वर' शब्द के भ्रामक उपयोग के कारण मैं इसे उठा रहा था Server key। जो समस्या का कारण था।

आप यहां कुंजी पा सकते हैं ।


धन्यवाद! मेरे मामले में काम किया। मुझे लगता है कि यह किसी भी तरह खुद के बैकेंड सर्वर (और
GoogleSignIn

5

मुझे एक ही समस्या हो रही थी, कि मैंने इसे कैसे हल किया है कि मेरे पास मेरी अपीलीय फ़ाइल में पैकेज के नाम की तुलना में मेरे ग्रेड फ़ाइल में अलग-अलग एप्लिकेशनआईड था। और मैं json फाइल बनाने के लिए ApplicationId करता था। मुझे अपने पैकेज के नाम को बदलना पड़ा कि मेरा एप्लीकेशनआईड क्या था और इसने मेरे लिए इसे निर्धारित किया।


1
मैंने हमेशा सोचा था कि मेनिफेस्ट में पैकेज अपीयरेंस से परिभाषित था जिसे ग्रेडेल में परिभाषित किया गया था। ऐसी बात नहीं है?
फ़्ल वी वी

3

वैकल्पिक रूप से यहां दिए गए उत्तरों के अनुसार, आप कुछ बटन के क्लिक के साथ अपने प्रोजेक्ट में अपने SHA-1 को स्वचालित रूप से जोड़ने के लिए एंड्रॉइड स्टूडियो के फायरबेस असिस्टेंट का उपयोग कर सकते हैं।

एंड्रॉइड स्टूडियो में, Tools > Firebase > Select 'Authentication'उस लिंक पर क्लिक करें जो कहता है 'Email and password authentication'

यह आपको अपने प्रोजेक्ट में प्रमाणीकरण को एकीकृत करने के बारे में थोड़ा ट्यूटोरियल लाएगा, लेकिन चूंकि आपने शायद यह सब किया है, बस क्लिक करें 'Connect to Firebase'और आप कर रहे हैं।


3

यह एक पुराना प्रश्न है, लेकिन मैं हाल ही में त्रुटि 10 (DEVELOPER_ERROR) के साथ फंस गया हूं, क्योंकि मैं एंड्रॉइड क्लाइंट आईडी का उपयोग कर रहा था, मैंने Google डेवलपर कंसोल में बनाया था।

मेरे लिए समाधान केवल Google डेवलपर कंसोल में एंड्रॉइड क्रेडेंशियल्स का उपयोग केवल मेरी एपीके की SHA कुंजी को इंगित करने के लिए और वेब अनुप्रयोग के क्लाइंट आईडी का उपयोग करने के लिए था (!) मेरे कॉर्डोवा एप्लिकेशन में Google डेवलपर कंसोल से।

config.xml:

<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
    <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
    <variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>

कोड:

window.plugins.googleplus.login(
    {
       'webClientId': '[web-application-client-id].apps.googleusercontent.com'
    }, 
    ...

मैं फायरबेस का उपयोग नहीं करता।


आपका बहुत धन्यवाद, इसने मुझे बहुत समय बचाया। वास्तव में ऑटो-जनरेट किए गए वेब का उपयोग करके client idDEVELOPER_ERROR समस्या हल हो गई है। हालांकि मेरे लिए इसका कोई मतलब नहीं है और यह स्पष्ट नहीं है कि विभिन्न क्लाइंट आईडी का उपयोग किया जाना चाहिए।
म्यरोस्लाव कोलोडी

3

आपने गलत SHA1 कुंजी उत्पन्न और जोड़ दी होगी। Android स्टूडियो में SHA1 कुंजी बनाने के लिए निम्नलिखित चरणों का उपयोग करें:

  1. ग्रेडल पर क्लिक करें (राइट साइड पैनल से, आप ग्रेडल बार देखेंगे)
  2. रीफ्रेश पर क्लिक करें (ग्रैड बार से रिफ्रेश पर क्लिक करें, आपको अपने प्रोजेक्ट की लिस्ट ग्रेड लिपि दिखाई देगी)
  3. अपने प्रोजेक्ट पर क्लिक करें (आपका प्रोजेक्ट नाम फॉर्म सूची (रूट))
  4. कार्य पर क्लिक करें
  5. Android पर क्लिक करें
  6. साइन इन करें पर डबल क्लिक करें (आपको रन बार में SHA1 और MD5 मिलेगा

अब इस SHA1 कुंजी को अपने फायरबेस एंड्रॉइड प्रोजेक्ट में जोड़ें।


3

कृपया एंड्रॉइड प्रोजेक्ट की जड़ में सही json फाइल डालें
। अधिक जानकारी के लिए यहां देखें: https://coderzpassion.com/android-working-latest-google-plus-login-api/


क्या उस जसन को जोड़ना अनिवार्य है, हम पहले भी इसके बिना उपयोग करते हैं?
गुरविंदर सिंह

मैंने सही कॉन्फ़िगरेशन के साथ सही फ़ाइल डाल दी, अभी भी त्रुटि है
बिबासवन बंद्योपाध्याय

1

मेरे लिए यह तब काम कर रहा था जब मैंने इसे पहली बार लागू किया था, लेकिन उल्लेखित त्रुटि संदेश के साथ, विकास के कुछ दिनों के बाद बंद हो गया।

मैंने इन चरणों के साथ समस्या हल की है:

  1. मैंने sha-1 फिंगरप्रिंट के ऊपर sha-256 फ़िंगरप्रिंट जोड़ा है जो मेरे पास पहले से ही फायरबेस कंसोल में था। (इस कदम की आवश्यकता है तो निश्चित नहीं)
  2. मैंने फिर से google-services.json फ़ाइल डाउनलोड की है और पुरानी फ़ाइल को बदल दिया है।
  3. एप्लिकेशन को फिर से स्थापित किया

और यह काम किया


0

मुझे अपने फायरबेस ऐप में यह त्रुटि आई। यह तब तय किया गया जब मैंने requestIdToken(activity.getString(R.string.default_web_client_id))नीचे का हिस्सा जोड़ा ।

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
        .build();

    apiClient = new GoogleApiClient.Builder(activity)
        .addConnectionCallbacks(this)
        .enableAutoManage(activity, this)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .build();

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
    activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);

क्या है default_web_client_id? मैं इसे कहाँ से प्राप्त कर सकता हूँ?
अयमान अल-अबी

@ AymanAl-Absi क्या आपने Google सेवाओं के लिए अपनी परियोजना ठीक से सेट की है? देखें: Developers.google.com/android/guides/google-services-plugin
Dan Brough

1
@ AymanAl-Absi में आपको अपनी google-service.json फ़ाइल से "default_web_client_id" भी मिलता है। इस फ़ाइल में आप उस टैग में Client_ID टैग देख सकते हैं, जिसमें आप केवल उस पाठ (client_ID) </ Client_ID] .app.etc> को कॉपी करते हैं।
प्रिंस

0

मुझे यह त्रुटि तब मिली जब मैंने अपने json config फ़ाइल को एक नए Google खाते से अपडेट किया।

मैन्युअल रूप से एप्लिकेशन को अनइंस्टॉल करना और मेरे लिए काम किए गए ऐप को फिर से इंस्टॉल करना।


0

त्रुटि का कारण बनता है क्योंकि डीबग या रिलीज़ कुंजी के SHA-1 चेकसम को फायरबेस / गूगल कंसोल में शामिल नहीं किया जाता है।

निम्नलिखित कमांड का उपयोग करके पहले कुंजी उत्पन्न करें:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

फिर SHA-1 चेकसम को कॉपी करें और यहां जाएं:

फायरबेस कंसोल> आपकी परियोजना> ऐप की सेटिंग> फिंगरप्रिंट जोड़ें


0

किसी एप्लिकेशन को जारी करने वाले व्यक्ति के लिए, आपको अपनी कीस्टोर फ़ाइल से एक विशेष फिंगरप्रिंट की आवश्यकता होती है। कोई आश्चर्य नहीं कि मुझे यह त्रुटि सिर्फ रिलीज़ संस्करण के लिए क्यों मिल रही थी। एंड्रॉइड पर OAuth 2.0 के लिए साइनिंग सर्टिफिकेट फिंगरप्रिंट (SHA1) कैसे प्राप्त करें?


0

सुनिश्चित करें कि आप Firebase कंसोल में प्रमाणीकरण के तहत Google साइन-इन सक्षम करें।


0

मैंने इस लाइन में सही server_client_id का उपयोग करके अपनी समस्या हल की :

String serverClientId = getString(R.string.server_client_id);

मैंने गलत कोड का इस्तेमाल किया।


0

Google लॉगिन जैसी कुछ सेवाओं के लिए आपके फायरबेस कंसोल में SHA1 फिंगरप्रिंट को जोड़ना आवश्यक है।

मैं फायरबेस कंसोल में SHA फिंगरप्रिंट जोड़ने से चूक गया। आप फायरबेस कंसोल> प्रोजेक्ट सेटिंग> ऐड फ़िंगरप्रिंट विकल्प में जाकर ऐसा कर सकते हैं।

आप बहुत आसान तरीके से https://Ayoutube.com/watch?v=FczARQ244GE द्वारा SHA1 फ़िंगरप्रिंट उत्पन्न कर सकते हैं

उसके बाद मैं एक और गलती कर रहा था

जनरंग के बाद SHA1 कुंजी fom विधि से ऊपर। मैंने गलत अमान्य SHA1 कुंजी की प्रतिलिपि बनाई जो कि एक समय सीमा समाप्त हो गई थी। तो सुनिश्चित करें कि SHA1 कुंजी जिसे आप ऊपर के तरीके से कॉपी कर रहे हैं आउटपुट एक वैध है (SHA1 कुंजी के समान वैध मान को भी जांचें)

यह भी सुनिश्चित करें कि आपने फायरबेस में जो पैकेज नाम (xyz) जोड़ा है, वही आपके एंड्रॉइड कोड में उपयोग किया गया है।

सही AppID का उपयोग करना भी सुनिश्चित करें


0

लंबे समय के आग्रह के बाद मैंने इसका हल ढूंढ लिया है। वास्तव में यह त्रुटि Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}गलत SHA-1 या गलत पैकेज नाम या कुछ और की ओर इशारा करती है।? मेरे मामले में, मैं debugअपने पैकेज के नाम के अंत में कीवर्ड जोड़ता हूं com.sample.app=>com.sample.app.debug


0

मैं इस मुद्दे से जूझ रहा था क्योंकि मैंने पैकेज नाम बदलने के साथ अपने आवेदन की एक प्रति बनाई थी। मैं फायरबेस में इसके लिए एक नई परियोजना जोड़ रहा हूं। मेरी गलती यह थी कि मैं नए फायरबेस प्रोजेक्ट में सर्वर के क्लाइंट आईडी को एक में बदलना भूल गया।

यहाँ Firebase संप्रदाय के साथ एकीकरण के तहत अधिक जानकारी

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