Hata: Durum {statusCode = DEVELOPER_ERROR, resolution = null}


105

Gplus oturum açmayı kullanıyorum ve bu hatayı onActivityResult'da olduğum anda alıyorum ...

@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();
        }
    }
}

Ve düğme tıklandığında gplus girişi için arıyorum. Tıklama düğmesine aşağıdaki kod çalıştırılır ...

 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);

Ve bu hatayı alıyorum ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

bu hatta ....

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

Lütfen çözümü önerin.


1
Uygulama yanlış yapılandırılmış. Google api yapılandırmasını kontrol edin.
1'hafs

6
Evet ama neyin yanlış olduğunu bulamıyorum.
Gurvinder Singh

Firebase kullanmıyorum.
Mike Miller

Yanıtlar:


216

SHA1 anahtarınızı firebase konsol yapılandırmasına eklemeniz gerekir. Bunu şu şekilde yapabilirsiniz:

Firebase konsolu ( https://console.firebase.google.com ) -> projeniz -> yapılandırma -> kaydırarak

görüntü açıklamasını buraya girin

SHA1 anahtarınızı Android Studio'dan "İmzalama raporu" çalıştıran bulabilirsiniz:

görüntü açıklamasını buraya girin

Ardından, "sekmeyi çalıştır" a bakın ve düğmeyi tıklayın:

görüntü açıklamasını buraya girin

Bunun daha kolay bir yol olduğunu düşünüyorum. Umarım bu yardımcı olur.


1
google geliştirici konsolundan SHA-1 sürümünü almanın en kolay yolu: stackoverflow.com/a/50124038/4923891
eren130

Bu SHA anahtarını Firebase Konsolu'nda nereye koyacağımı anlamakta sorun yaşadım. Sonunda buldum. Proje Ayarları'nı açın> Aşağı Kaydırın, Parmak İzi Ekleyin, SHA anahtarınızı oraya koyun> Yeni google-services.json indirin ve android-app \ app
paakjis

1
Not! Firebase konsolunda SHA-256 anahtar karması için bir boşluk olmasına rağmen, SHA-1 anahtarını girmeniz GEREKİR. SHA-256 size yine de hatalar verecek
f.khantsis

Faydalı. Teşekkürler!
Pooja

30

Muhtemelen yapılandırma dosyasını üretim jetonunuzun SHA1'ini kullanarak oluşturdunuz, androiddebugkeydiğer adı uygulamanızın hata ayıklama sürümüne karşılık gelen SHA1'i toplamak için kullanın ve yapılandırma dosyasını 'uygulama' dizinine kopyalayın; her iki yapılandırma dosyasına da sahip olmalısınız (biri için hata ayıklama amaçları ve üretim ortamı için başka).

Https://developers.google.com/identity/sign-in/android/start adresinde yayınlanan adım adım açıklamalı kılavuza göre


5
OAuth 2.0 istemci kimlikleri için Android İstemcisi yerine Web İstemcisi kimlik bilgilerine geçtiğimde hatam düzeltildi. Bir web sunucusuyla konuşan bir Android uygulaması geliştirirken ifadeler hala kafamı karıştırıyor ... ama en azından hata gitti
Burrito

12

Aynı sorunu yaşadım ve şu adımları uygulayarak çalıştırdım:

1. firebase projesine DEBUG_KEYSTORE SHA1 parmak izini ekleyin. aşağıdaki komutu kullanın (MAC / LINUX)

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

2. Şimdi projenizin imzalı bir apk'sini oluşturun. Süreç, uygulamanızın yayın sürümü için bir anahtar deposu oluşturmayı içerir.

  Copy the path of the newly generated .jks file.

3. Şimdi aşağıdaki komutu kullanarak RELEASE_KEYSTORE SHA1 parmak izi oluşturun

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

4. Yeni SHA1'i çıktıdan kopyalayın ve firebase uygulama konsolunuza başka bir SHA1 parmak izi olarak ekleyin.

Şimdi gitmekte iyisin! ---- Umut! yardımcı olur.


sha1'i serbest bırakan, yalnızca yerleştiriyorum ve sonra bu hatayı alıyorum, google oturum açma, analytics ve gcm için google_services.xml, tek dosya oluştur
Harsha

sha1'inizin uygulamanın 'hata ayıklama' sürümü değil, 'yayın' sürümünde olduğundan emin olun
Udit Kapahi

Ha Evet, imzalı apk oluşturuyorum ve ayrıca jks ve anahtar deposu şifrelerini kullandığım uygulama mağazasında yayınlıyorum
Harsha

benim açık ssl'm openssl-0.9.8k_WIN32. Birinci geliştirme için previos kullanıyorum
Harsha

keytool şifre gerektiriyor : "android"
Guglie

11

görüntü açıklamasını buraya girin

Düzeltme şeklim, vurgulanan metne karşılık gelen anahtarı almaktı. Firebase'in dokümantasyon sayfasındaki 'sunucu' kelimesinin kafa karıştırıcı kullanımı nedeniyle Server key. Sorunun nedeni buydu.

Anahtarı burada bulabilirsiniz .


Teşekkürler! Benim durumumda çalıştı. Sanırım bir şekilde kendi arka uç sunucusunu kullanarak (ve GoogleSignIn'de "requestServerAuthCode" çağrısı yaparak)
ITurchenko

5

Aynı sorunu yaşıyordum, bunu nasıl çözdüm, gradle dosyamda manifest dosyamdaki paket adından farklı applicationId olmasıydı. Ve json dosyasını oluşturmak için applicationId kullanıyordum. Paket adımı uygulama kimliğimle değiştirmem gerekti ve bu benim için düzeltti.


1
Her zaman Manifest'teki paketin gradle'da tanımlanan ApplicationId tarafından geçersiz kılındığını düşündüm. Konu bu değil?
Flo We

3

Burada verilen cevaplara alternatif olarak, Android Studio'nun Firebase Assistant'ını kullanarak bazı butonlara tıklayarak SHA-1'inizi projenize otomatik olarak ekleyebilirsiniz.

Android Studio'da, Tools > Firebase > Select 'Authentication'yazan bağlantıya gidin ve tıklayın 'Email and password authentication'.

Bu, Kimlik Doğrulamayı projenize nasıl entegre edeceğiniz konusunda size küçük bir öğretici getirecektir, ancak muhtemelen hepsini yaptığınız için, sadece tıklayın 'Connect to Firebase've bitirdiniz.


3

Bu eski bir soru, ancak Google geliştirici konsolunda oluşturduğum Android istemci kimliğini kullandığım için son zamanlarda hata 10 (DEVELOPER_ERROR) ile sıkışıp kaldım.

Benim için çözüm, google geliştirici konsolundaki Android kimlik bilgilerini yalnızca apk'min SHA anahtarını belirtmek ve cordova uygulamamdaki Google geliştirici konsolundan Web uygulamasının istemci kimliğini (!) Kullanmaktı.

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>

kod:

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

Firebase kullanmıyorum.


Çok teşekkür ederim, bana çok zaman kazandırdı. Gerçekten de otomatik olarak oluşturulan web'i kullanmak client idDEVELOPER_ERROR sorununu çözdü. Benim için mantıklı gelmese de farklı müşteri kimliklerinin kullanılması gerektiği açık değil.
Myroslav Kolodii

3

Yanlış SHA1 anahtarı oluşturmuş ve eklemiş olabilirsiniz. Android stüdyosunda SHA1 anahtarı oluşturmak için aşağıdaki adımları kullanın:

  1. Gradle'a tıklayın (Sağ Panelden Gradle Bar'ı göreceksiniz)
  2. Yenile'ye tıklayın (Gradle Çubuğundan Yenile'ye tıklayın, Projenizin Gradle komut dosyalarını listeyi göreceksiniz)
  3. Projenize tıklayın (Proje Adı form Listeniz (kök))
  4. Görevler'e tıklayın
  5. Android'e tıklayın
  6. SigningReport üzerine çift tıklayın (Run Bar'da SHA1 ve MD5'i alacaksınız (Bazen Gradle Console'da olacaktır))

Şimdi bu SHA1 anahtarını firebase android projenize ekleyin.



1

Hata, hata ayıklama veya serbest bırakma anahtarının SHA-1 sağlama toplamının firebase / google konsoluna dahil edilmemesinden kaynaklanır.

Önce aşağıdaki komutu kullanarak anahtarı oluşturun:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

Ardından SHA-1 sağlama toplamını kopyalayın ve şu adrese gidin:

Firebase Konsolu> Projeniz> Uygulamanın ayarları> Parmak İzi Ekle


1

Benim için onu ilk uyguladığımda çalışıyordu, ancak birkaç günlük geliştirmeden sonra belirtilen hata mesajıyla durdu.

Sorunu şu adımlarla çözdüm:

  1. Firebase konsolunda zaten sahip olduğum sha-1 parmak izinin üstüne sha-256 parmak izini ekledim. (Bu adımın gerekli olup olmadığından emin değilim)
  2. Google-services.json dosyasını tekrar indirdim ve eski dosyayı değiştirdim.
  3. uygulamayı yeniden kurdu

ve işe yaradı


0

Firebase uygulamamda bu hatayla karşılaştım. requestIdToken(activity.getString(R.string.default_web_client_id))Aşağıdaki bölümü eklediğimde düzeltildi .

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 nedir? nereden alabilirim?
Ayman Al-Absi

@ AymanAl-Absi Projenizi google servisleri için doğru bir şekilde kurdunuz mu? bakınız: developers.google.com/android/guides/google-services-plugin
Dan Brough

1
@ AymanAl-Absi ayrıca google-service.json dosyanızdan "default_web_client_id" dosyasını da bu dosyada kopyaladığınız bu etikette Client_ID etiketini görebilirsiniz (client_ID) <[Client_ID] .app.etc>.
Prince

0

Bu hatayı json yapılandırma dosyamı yeni bir google hesabıyla güncellediğimde aldım.

Uygulamayı manuel olarak kaldırmak ve uygulamayı yeniden yüklemek benim için çalıştı.



0

Firebase konsolunda Kimlik Doğrulama altında Google ile Oturum Açmayı etkinleştirdiğinizden emin olun.


0

Sorunumu bu satırda doğru server_client_id kullanarak çözdüm :

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

Yanlış kodu kullandım.


0

Google girişi gibi bazı Hizmetler, firebase konsolunuza SHA1 parmak izinin eklenmesini gerektirir.

Firebase konsoluna SHA parmak izi eklemeyi özledim. Bunu FireBase Konsolu> proje ayarı> Parmak izi ekle seçeneğine giderek yapabilirsiniz.

SHA1 Parmak İzini çok kolay bir şekilde oluşturabilirsiniz https://www.youtube.com/watch?v=FczARQ244GE

Ondan sonra bir hata daha yapıyordum

Oluşturulduktan sonra SHA1 anahtar formunun yukarıdaki yöntemi. Süresi dolmuş olan yanlış geçersiz SHA1 anahtarını kopyaladım. Bu nedenle, yukarıdaki yoldan kopyaladığınız SHA1 anahtarının geçerli bir anahtar olduğundan emin olun (SHA1 Anahtarının yanı sıra geçerli olan kadar değeri kontrol edin)

Ayrıca, firebase'e eklediğiniz paket adının (xyz) android kodunuzda kullanılanla aynı olduğundan emin olun.

Ayrıca doğru AppID kullandığınızdan emin olun


0

Uzun araştırmalardan sonra bir çözüm buldum. Aslında bu hata Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}, yanlış SHA-1 VEYA Yanlış paket adı VEYA başka bir şeye işaret ediyor mu? Benim durumumda, debugpaket adımın sonuna anahtar kelime ekliyorum com.sample.app=>com.sample.app.debug


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.