it-swarm.com.de

statusCode = DEVELOPER_ERROR bei Google Login

Unten stehender Code, den ich für Google login verwende. Ich fügte google-services.json-Datei im App-Ordner hinzu. Ich verwende classpath 'com.google.gms:google-services:2.0.0 'im gradle-Modul. Ich habe mein Paket an der Entwicklerkonsole und dessen korrekten Wert überprüft und den SHA1-Schlüssel hinzugefügt, den ich durch Ausführen des Befehls erhalten habe keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android auf dem Terminal (ich verwende ubuntu) .Ich habe die Google+ API aktiviert. Ich habe die OAuth-Einwilligungsanzeige und die OAuth-Client-ID erstellt. Immer noch bekomme ich eine Fehlermeldung, wenn ich versuche, mich mit google- anzumelden. 

{statusCode = DEVELOPER_ERROR, Auflösung = null}

Ich überprüfe eine ähnliche Frage, konnte aber keine passende Lösung finden. 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();
        }
    }

Manifest

<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

Es ist wahrscheinlich, dass Ihr Problem darin besteht, dass Sie den SHA1 aus ~/.Android/debug.keystore ausgewählt haben, ihn aber nicht zum Signieren Ihres Builds verwenden.

  1. Gehen Sie zu den Moduloptionen Registerkarte Signing und fügen Sie ein Profil hinzu, wobei das einzige Feld Store File auf /Users/<your_user>/.Android/debug.keystore gesetzt ist.

  2. Auf der Registerkarte Flavors wählen Sie es in der Dropdown-Liste Signing Config aus.

  3. Wählen Sie auf der Registerkarte Build-Typen in der Dropdown-Liste Signing Config Ihren Build-Typ aus (wahrscheinlich Debug).

  4. Bereinigen und neu aufbauen.

6
Aleksey Gureiev

Ich habe das gleiche Problem und diese Lösung hat funktioniert. Hoffen Sie, dass dies Ihnen und anderen helfen wird.

Wenden Sie das Plugin an: 'com.Android.application'

Android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {

Vergewissern Sie sich, dass diese applicationId mit Ihrem Paketnamen in der Manifest-Datei (Groß- und Kleinschreibung) übereinstimmt.

        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

Wenn Sie auf zwei verschiedenen Computern arbeiten, müssen Sie den SHA1 erneut generieren und zu console.firebase.google.com hinzufügen, google-service.json herunterladen und Ihrem Projekt hinzufügen

5
Moises Apaza Q

gelöst durch Hinzufügen von SHA-1 of Debug-Schlüsselspeicher in der Firebase-Konsole für meine App , die sich hier C:\Users\befindet my name.Android , wenn Sie den Schlüsselspeicher für release in der Firebase-Konsole ändern

3
amorenew

Verwenden Sie .requestIdToken (BACKEND_CLIENT_ID) für Ihre GoogleSignInOptions. 

Wie Sie die BACKEND_CLIENT_ID erhalten, finden Sie hier: https://developers.google.com/identity/sign-in/Android/start-integrating#get_your_backend_servers_oauth_20_client_id

Hoffe das hat geholfen!

3
teh.fonsi

Danke, Aleksey Gureiev, für den Hinweis ... Ich habe mein Problem gelöst, indem sichergestellt wurde, dass Debug-Schlüssel tatsächlich während des Builds verwendet werden.

Für mich in Android Studio war das Problem, dass die Signing Config überhaupt nicht festgelegt wurde. Ich frage mich immer noch, wie es passiert ist.

Sobald ich Signing Config auf meine Config mit dem Namen "debug" gesetzt habe, hat alles funktioniert.

 enter image description here

0
Sameer