2015-12-16 19 views
5

Ein Problem, das mein Projekt aufgetreten ist, ist, dass die Anmeldung über Google nicht einheitlich funktioniert. Dh, es funktioniert für meinen Freund und nicht für mich von meinem Computer, obwohl es gestern für mich funktionierte, bevor ich mein Telefon wischte (das Telefon wurde beschädigt). Unser Login-Code ist der Standard für Google-Anmeldung, und das Problem ist, dass das Ergebnis immer falsch zurückkehrt, denke ich. der Code:Google Anmelden nicht funktioniert Android?

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.welcome_screen); 
     findViewById(R.id.sign_in_button).setOnClickListener(this); 

     GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestEmail() 
       .build(); 

     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .build(); 

     SignInButton signInButton = (SignInButton) findViewById(R.id.sign_in_button); 
     signInButton.setSize(SignInButton.SIZE_STANDARD); 
     signInButton.setScopes(gso.getScopeArray()); 

    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.sign_in_button: 
       signIn(); 
       break; 
     } 
    } 

private void signIn() { 
     Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
     startActivityForResult(signInIntent, RC_SIGN_IN); 
    } 

    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); 
     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(); 

//   mStatusTextView.setText(getString(R.string.signed_in_fmt, acct.getDisplayName())); 
      updateUI(acct); 
     } else { 
      // Signed out, show unauthenticated UI. 
      noUpdateUI(); 
     } 
    } 

    private void updateUI(GoogleSignInAccount acct) { 
     Intent intent = new Intent(getApplicationContext(), HomeScreen.class); 

     Bundle bundle = new Bundle(); 
     bundle.putSerializable("NEW_USER", new ClientUser(acct)); 
     intent.putExtras(bundle); 

     startActivity(intent); 
    } 


For some reason, the result is false: 

    private void noUpdateUI() { 
     System.out.println("**** Try again****"); 
//  mStatusTextView.setText(R.string.signed_out); 
     findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE); 
    } 

Ich glaube, ich habe meine App-Anmeldeinformationen richtig eingerichtet ist, wie es zuvor von meinem Desktop gearbeitet, bevor ich mein Handy gewischt. Bemerkenswert ist, dass mein Freund das gleiche Problem von seinem Laptop aus hatte, aber das Problem nicht von seinem Desktop aus funktioniert. Nicht sicher, was los ist; irgendwelche Vorschläge?

Das Protokoll von sys.out:

12-16 18:48:43.282 27375-27375/oose2017.place2b D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 
12-16 18:48:43.412 27375-27375/oose2017.place2b I/Timeline: Timeline: Activity_launch_request id:oose2017.place2b time:3231784 
12-16 18:48:43.452 27375-27375/oose2017.place2b D/Activity: performCreate Call Injection manager 
12-16 18:48:43.462 27375-27375/oose2017.place2b I/InjectionManager: dispatchOnViewCreated > Target : com.google.android.gms.auth.api.signin.internal.SignInHubActivity isFragment :false 
12-16 18:48:43.462 27375-27375/oose2017.place2b D/PhoneWindow: *FMB* installDecor mIsFloating : false 
12-16 18:48:43.462 27375-27375/oose2017.place2b D/PhoneWindow: *FMB* installDecor flags : 8454400 
12-16 18:48:43.462 27375-27375/oose2017.place2b D/SecWifiDisplayUtil: Metadata value : SecSettings2 
12-16 18:48:43.472 27375-27375/oose2017.place2b D/PhoneWindow: *FMB* isFloatingMenuEnabled mFloatingMenuBtn : null 
12-16 18:48:43.472 27375-27375/oose2017.place2b D/PhoneWindow: *FMB* isFloatingMenuEnabled return false 
12-16 18:48:43.482 27375-27375/oose2017.place2b D/SRIB_DCS: log_dcs ThreadedRenderer::initialize entered! 
12-16 18:48:43.492 27375-27584/oose2017.place2b D/mali_winsys: new_window_surface returns 0x3000, [1440x2560]-format:1 
12-16 18:48:43.542 27375-27375/oose2017.place2b I/Timeline: Timeline: Activity_idle id: [email protected] time:3231916 
12-16 18:48:43.962 27375-27375/oose2017.place2b V/ActivityThread: updateVisibility : ActivityRecord{1458bd29 [email protected] {oose2017.place2b/oose2017.place2b.interfaces.Welcome.WelcomeScreen}} show : true 
12-16 18:48:43.962 27375-27375/oose2017.place2b V/ActivityThread: updateVisibility : ActivityRecord{d3e4299 [email protected] {oose2017.place2b/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}} show : true 
12-16 18:48:48.102 27375-27375/oose2017.place2b I/System.out: ***** Try again!***** 
12-16 18:48:48.132 27375-27375/oose2017.place2b I/Timeline: Timeline: Activity_idle id: [email protected] time:3236507 
+0

Nur um zu klären, das Fenster zur Anmeldung erscheint, richtig? Und wenn Sie dann auf "Anmelden" klicken, schlägt die Anmeldung fehl. – KodyVanRy

+0

@ DuhProgrammer13: Ja, das ist der Fall. – bianca

+0

Traktion in diesem Problem? Ich bekomme dieses Problem auch in ihrem Beispielcode. – bianca

Antwort

0

Sie benötigen Android-Client-Schlüssel an, wenn GoogleSignInOptions wie diese

signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN). 
      requestScopes(new Scope(Scopes.EMAIL)). 
      requestEmail(). 
      requestIdToken(getString(R.string.client_id)). 
      build(); 
5

Ich hatte das gleiche Problem zu schaffen. Ich löste es durch folgende Maßnahmen:

  1. ich meine build.gradle (app) ging, innerhalb DefaultConfig und änderte den applicationId meinem Paketnamen (Ich weiß nicht, warum es die gleiche anfangs war nicht). Ich wechselte compile 'com.google.android.gms:play-services-auth:8.3.0'-compile 'com.google.android.gms:play-services-auth:8.4.0' Stellen Sie sicher, apply plugin: 'com.google.gms.google-services' an der Unterseite Ihres build.gradle ist (app) heißt nach den Abhängigkeiten

  2. ich einen neuen SHA-1-Schlüssel generiert. Um die SHA-1-Taste zu generieren, fügen Sie diese in Ihr Terminal ein: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android dann gehen Sie zu Ihrer credentials page und wählen Sie Ihr Projekt.

  3. Klicken Sie unter OAuth 2.0-Client auf Ihren Android-Clientschlüssel. Fügen Sie den SHA-1-Schlüssel, den Sie generiert haben, und den Paketnamen wie angegeben ein. Klicken Sie auf Speichern.

    1. Laden Sie eine neue google-services.json-Datei herunter und fügen Sie sie in Ihr app/-Verzeichnis ein.

Dann versuchen Sie sich erneut anzumelden. Hoffentlich sollte es funktionieren. Weitere Informationen finden Sie unter post und this as well. Es half mir, meine zu lösen

+0

Punkte 3 und 4 waren meine Probleme. Danke Mann –

+0

Sie sind willkommen. Froh, dass ich Helfen kann – NezSpencer

Verwandte Themen