Errore: stato {statusCode = DEVELOPER_ERROR, risoluzione = null}


104

Sto utilizzando l'accesso gplus e ricevo questo errore nel momento in cui sono in 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();
        }
    }
}

E sto chiedendo l'accesso a gplus al clic del pulsante. Sul pulsante clcking viene eseguito il codice seguente ....

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

E sto geetng questo errore ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

su questa linea ....

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

Si prega di suggerire la soluzione.


1
L'applicazione non è configurata correttamente. Controlla la configurazione di google api.
1'hafs

6
Sì, ma non sono in grado di scoprire cosa c'è che non va.
Gurvinder Singh

Non uso Firebase. Vedi la mia soluzione qui: stackoverflow.com/a/46828895/1160216
Mike Miller

Risposte:


215

Devi aggiungere la tua chiave SHA1 alla configurazione della console Firebase. Puoi farlo in questo modo:

Console Firebase ( https://console.firebase.google.com ) -> il tuo progetto -> configurazione -> scorri fino a

inserisci qui la descrizione dell'immagine

Puoi trovare la tua chiave SHA1 in esecuzione "Rapporto sulla firma" da Android Studio:

inserisci qui la descrizione dell'immagine

Quindi, guarda la "scheda Esegui" e fai clic sul pulsante:

inserisci qui la descrizione dell'immagine

Penso che sia il modo più semplice. Spero che questo aiuto.


1
qui è il modo più semplice per ottenere il rilascio SHA-1 dalla console Google Developer: stackoverflow.com/a/50124038/4923891
eren130

Ho avuto problemi a capire dove mettere quella chiave SHA in Firebase Console. Finalmente l'ho trovato. Apri Impostazioni progetto> scorri verso il basso, aggiungi impronta digitale, metti lì la tua chiave SHA> Scarica nuovo google-services.json e posizionalo android-app \ app
paakjis

1
Nota! Anche se la console Firebase ha uno spazio per l'hash della chiave SHA-256, DEVI inserire la chiave SHA-1. Lo SHA-256 ti darà ancora errori
f.khantsis

Utile. Grazie!
Pooja

30

Probabilmente hai creato il file di configurazione utilizzando SHA1 del tuo token di produzione , usa l'estensioneandroiddebugkey alias per raccogliere lo SHA1 corrispondente alla versione di debug della tua app e copia il file di configurazione nella directory 'app', dovresti avere entrambi i file di configurazione (uno per scopi di debug e un altro per l'ambiente di produzione).

Basato sulla procedura dettagliata pubblicata su https://developers.google.com/identity/sign-in/android/start


5
Il mio errore è stato corretto quando sono passato alle credenziali del client Web invece del client Android per gli ID client OAuth 2.0. La formulazione mi confonde ancora mentre sto sviluppando un'app Android che parla con un server web ... ma l'errore è sparito almeno
Burrito

12

Ho avuto lo stesso problema e l'ho risolto eseguendo questi passaggi:

1.Aggiungi l'impronta digitale DEBUG_KEYSTORE SHA1 al progetto Firebase. utilizzare il seguente comando (MAC / LINUX)

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

2. Ora genera un apk firmato del tuo progetto. Il processo include la generazione di un keystore per la versione di rilascio della tua app.

  Copy the path of the newly generated .jks file.

3.Ora genera l'impronta digitale RELEASE_KEYSTORE SHA1 utilizzando il seguente comando

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

4.Copia il nuovo SHA1 dall'output e aggiungilo come un'altra impronta digitale SHA1 nella console dell'applicazione Firebase.

Adesso sei a posto! ---- Speranza! aiuta.


che ha rilasciato sha1 solo sto posizionando quindi anche questo errore, genera google_services.xml per l'accesso a google, analisi e gcm, singolo file
Harsha

assicurati che il tuo sha1 sia della versione "release" dell'app e non della versione "debug"
Udit Kapahi,

Ah sì, sto generando apk firmato e pubblicato anche in appstore, che jks e password del keystore sto usando solo
Harsha,

il mio SSL aperto è openssl-0.9.8k_WIN32 sto usando previos per lo sviluppo uno
Harsha

keytool richiede una password : "android"
Guglie

11

inserisci qui la descrizione dell'immagine

Il modo in cui l'ho risolto è stato sollevando la chiave corrispondente al testo evidenziato. A causa dell'uso confuso della parola "server" nella pagina della documentazione di Firebase stavo raccogliendo ilServer key . Quale era la ragione del problema.

Puoi trovare la chiave qui .


Grazie! Ha funzionato nel mio caso. Penso che in qualche modo sia connesso con l'utilizzo del proprio server di backend (e la chiamata per "requestServerAuthCode" in
GoogleSignIn

5

Avevo lo stesso problema, come l'ho risolto è che avevo un ID applicazione diverso nel mio file gradle rispetto al nome del pacchetto nel mio file manifest. E ho usato applicationId per creare il file json. Ho dovuto cambiare il nome del mio pacchetto in quello che era il mio ID applicazione e questo ha risolto il problema per me.


1
Ho sempre pensato che il pacchetto nel Manifest fosse sovrascritto dall'ApplicationId definito in gradle. Non è così?
Flo We

3

In alternativa alle risposte fornite qui, puoi utilizzare Firebase Assistant di Android Studio per aggiungere automaticamente il tuo SHA-1 al tuo progetto con il clic di alcuni pulsanti.

In Android Studio, vai a Tools > Firebase > Select 'Authentication'e fai clic sul collegamento che dice'Email and password authentication' .

Questo ti porterà un piccolo tutorial su come integrare l'autenticazione nel tuo progetto, ma poiché probabilmente hai fatto tutto questo, fai clic 'Connect to Firebase'e il gioco è fatto.


3

È una vecchia domanda, ma ultimamente sono rimasto bloccato con l'errore 10 (DEVELOPER_ERROR), perché stavo usando l'ID client Android, che ho creato nella console per sviluppatori di Google.

La soluzione per me è stata quella di utilizzare le credenziali Android nella console per sviluppatori di Google solo per indicare la chiave SHA del mio apk e per utilizzare l'ID client delle credenziali dell'applicazione Web (!) Dalla console per sviluppatori di Google nella mia applicazione cordova.

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>

codice:

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

Non uso Firebase.


Grazie mille, mi ha fatto risparmiare un sacco di tempo. In effetti, l'utilizzo del Web generato automaticamente ha client idrisolto il problema DEVELOPER_ERROR. Anche se per me non ha senso e non è ovvio che debba essere utilizzato un ID client diverso.
Myroslav Kolodii,

3

Potresti aver generato e aggiunto una chiave SHA1 errata. Utilizzare i passaggi seguenti per generare la chiave SHA1 in Android Studio:

  1. Fai clic su Gradle (dal pannello laterale destro, vedrai Gradle Bar)
  2. Fai clic su Aggiorna (fai clic su Aggiorna dalla Gradle Bar, vedrai Elenca gli script Gradle del tuo progetto)
  3. Fai clic sul tuo progetto (Elenco dei moduli del nome del progetto (root))
  4. Fare clic su Attività
  5. Fare clic su Android
  6. Fare doppio clic su signingReport (Otterrai SHA1 e MD5 nella barra di esecuzione (a volte sarà in Gradle Console))

Ora aggiungi questa chiave SHA1 nel tuo progetto Android Firebase.



1

L'errore è causato dal fatto che il checksum SHA-1 della chiave di debug o di rilascio non è incluso nella console Firebase / Google.

Prima genera la chiave usando il seguente comando:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

Quindi copia il checksum SHA-1 e vai a:

Console Firebase> Il tuo progetto> Impostazioni dell'app> Aggiungi impronta digitale


1

Per me funzionava quando l'ho implementato per la prima volta, ma si è fermato dopo alcuni giorni di sviluppo, con il messaggio di errore menzionato.

Ho risolto il problema con questi passaggi:

  1. Ho aggiunto l'impronta digitale sha-256 sopra l'impronta digitale sha-1 che avevo già nella console Firebase. (Non sono sicuro se questo passaggio è richiesto)
  2. Ho scaricato di nuovo il file google-services.json e ho sostituito il vecchio file.
  3. ha reinstallato l'app

e ha funzionato


0

Ho riscontrato questo errore nella mia app Firebase. È stato risolto quando ho aggiunto la requestIdToken(activity.getString(R.string.default_web_client_id))parte di seguito.

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

cos'è default_web_client_id? da dove posso ottenerlo?
Ayman Al-Absi,

@ AymanAl-Absi Hai impostato correttamente il tuo progetto per i servizi di Google? vedi: developers.google.com/android/guides/google-services-plugin
Dan Brough

1
@ AymanAl-Absi ottieni anche "default_web_client_id" dal tuo file google-service.json in questo file puoi vedere il tag Client_ID in quel tag che copi solo quel testo (client_ID) <[Client_ID] .app.etc>.
Prince

0

Ho ricevuto questo errore quando ho aggiornato il mio file di configurazione json con un nuovo account Google.

Disinstallare l'applicazione manualmente e reinstallare l'app ha funzionato per me.



0

Assicurati di abilitare Google Sign-In in Autenticazione nella console Firebase.


0

Ho risolto il mio problema utilizzando il server_client_id corretto in questa riga:

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

Ho usato il codice sbagliato.


0

Alcuni servizi come l'accesso a Google richiedono l'aggiunta dell'impronta digitale SHA1 alla tua console Firebase.

Mi mancava l'aggiunta dell'impronta digitale SHA nella console Firebase. Puoi farlo andando in FireBase Console> impostazione progetto> Aggiungi opzione impronta digitale.

Puoi generare l'impronta digitale SHA1 in un modo molto semplice https://www.youtube.com/watch?v=FczARQ244GE

Dopo di che stavo facendo un altro errore

Dopo la generazione della chiave SHA1 dal metodo precedente. Ho copiato la chiave SHA1 non valida errata che era scaduta. Quindi assicurati che la chiave SHA1 che stai copiando dall'output precedente sia valida (controlla anche il valore fino a quando la chiave SHA1)

Assicurati inoltre che il nome del pacchetto (xyz) che hai aggiunto in Firebase sia lo stesso utilizzato nel tuo codice Android.

Assicurati anche di utilizzare l'AppID corretto


0

Dopo lunghe indagini ho trovato una soluzione. In realtà questo errore Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}indica errato SHA-1 o il nome del pacchetto errato O qualcos'altro ?. Nel mio caso, aggiungo la debugparola chiave alla fine del nome del mio pacchetto com.sample.app=>com.sample.app.debug


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.