web-dev-qa-db-fra.com

statusCode = DEVELOPER_ERROR dans la connexion à Google

J'utilise le code google-services.json dans le dossier de l'application.J'utilise le code classpath 'com.google.gms:google-services:2.0.0 'dans le module racine Gradle.J'ai vérifié mon package sur la console du développeur et son correct, et j'ai ajouté la clé SHA1 obtenue en exécutant la commande. keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android sur le terminal (j'utilise ubuntu) .J'ai activé Google+ API.J'ai créé un écran de consentement OAuth et un client idAuth. Je reçois une erreur ci-dessous lorsque j'essaie de me connecter avec Google- 

{statusCode = DEVELOPER_ERROR, resolution = null}

Je vérifie une question similaire mais ne trouve pas de solution appropriée. Code

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestProfile().requestId()
            .requestEmail().requestScopes(new Scope(Scopes.PLUS_ME))
            .requestScopes(new Scope(Scopes.PLUS_LOGIN))
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build();

    googleButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, RC_SIGN_IN);

    }
    });

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == RC_SIGN_IN) {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            handleSignInResult(result);
        } 
    }
    private void handleSignInResult(GoogleSignInResult result) {
        if (result.isSuccess()) {
            // Signed in successfully, show authenticated UI.
            GoogleSignInAccount acct = result.getSignInAccount();

        } else {
            // Signed out, show unauthenticated UI.
            // updateUI(false);
        }
    }
    @Override
    protected void onStart() {
        super.onStart();
        mGoogleApiClient.connect();
    }
    @Override
    protected void onStop() {
        super.onStop();
        if(mGoogleApiClient.isConnected())
        {
            mGoogleApiClient.disconnect();
        }
    }
    @Override
    protected void onResume() {
        super.onResume();
        if(mGoogleApiClient.isConnected())
        {
            mGoogleApiClient.connect();
        }
    }

Manifeste

<uses-permission Android:name="Android.permission.INTERNET" />
   <uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
    <!-- To use account credentials -->
    <uses-permission Android:name="Android.permission.USE_CREDENTIALS" />
  <meta-data
            Android:name="com.google.Android.gms.version"
            Android:value="@integer/google_play_services_version" />
5

Il est probable que votre problème réside dans le fait que vous avez choisi SHA1 à partir du ~/.Android/debug.keystore, mais que vous ne l'utilisez pas pour signer votre construction.

  1. Accédez à l'onglet Options de signature du module et ajoutez un profil avec le seul champ Store File défini sur /Users/<your_user>/.Android/debug.keystore.

  2. Dans l'onglet Flavors, sélectionnez-le dans la liste déroulante Signing Config.

  3. Dans l'onglet Types de construction, sélectionnez-le dans la liste déroulante Signing Config pour votre type de construction (susceptible d'être Debug).

  4. Nettoyer et reconstruire.

6
Aleksey Gureiev

J'ai le même problème et cette solution a fonctionné. J'espère que cela vous aidera, vous et les autres.

Appliquez le plugin: 'com.Android.application'

Android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {

Assurez-vous que cet ID application est identique au nom de votre package dans le fichier manifeste (les majuscules et les minuscules importent)} _

        applicationId "com.example" 
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}
5
Ravi Vaniya

Si vous travaillez sur deux ordinateurs différents, vous devez générer à nouveau le SHA1 et l'ajouter à console.firebase.google.com, télécharger le fichier google-service.json et ajouter votre projet.

5
Moises Apaza Q

résolu en ajoutant SHA-1 of magasin de clés de débogage dans la console Firebase pour mon application qui se trouve ici C:\Utilisateurs\mon nom.Android lorsque vous créez le magasin de clés pour release changez-le dans la console Firebase

3
amorenew

Utilisez .requestIdToken (BACKEND_CLIENT_ID) avec vos options GoogleSignInOptions. 

Comment obtenir le BACKEND_CLIENT_ID peut être trouvé ici: https://developers.google.com/identity/sign-in/Android/start-integrating#get_your_backend_servers_oauth_20_client_id

J'espère que cela a aidé!

3
teh.fonsi

Merci Aleksey Gureiev pour avoir laissé entendre… J'ai résolu mon problème en m'assurant que les clés de débogage sont réellement utilisées lors des compilations ..

Pour moi dans Android Studio, le problème était que la configuration de la signature n'était pas réglée du tout. Je me demande encore comment cela s'est passé.

Une fois que j'ai défini Signing Config sur ma config avec le nom "debug", tout a commencé à fonctionner.

 enter image description here

0
Sameer