2015-12-16 19 views
5

Quindi un problema che il mio progetto ha riscontrato è che l'accesso tramite google non funziona in modo coerente. Vale a dire, funziona per il mio amico e non per me dal mio computer, anche se ha funzionato per me ieri prima di pulire il mio telefono (il telefono è stato danneggiato). Il nostro codice di accesso è lo standard per l'accesso a Google, e il problema è che il risultato continua a restituire false, credo. il codice:Google accedi non funziona 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); 
    } 

Credo di aver impostato le credenziali di mia app in modo corretto, come ha funzionato in precedenza dal mio desktop prima ho cancellato il mio telefono. Da notare, il mio amico ha avuto lo stesso problema lavorando dal suo portatile, ma non ha il problema di lavorare dal suo desktop. Non sono sicuro di cosa succede; eventuali suggerimenti?

Il registro da 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

Giusto per chiarire, la finestra per accedere è mostrata, corretta? E poi quando fai clic su Accedi, l'accesso fallisce? – KodyVanRy

+0

@ DuhProgrammer13: sì, questo è il caso. – bianca

+0

qualsiasi trazione su questo problema? Sto anche ricevendo questo problema nel loro codice di esempio. – bianca

risposta

0

È necessario collegare la chiave del client Android per la creazione di GoogleSignInOptions come questo

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

Ho avuto lo stesso problema. ho risolto facendo quanto segue:

  1. sono andato al mio build.gradle (app), all'interno defaultconfig e cambiato l'ApplicationId al mio nome del pacchetto (non so il motivo per cui non era lo stesso inizialmente). sono passato compile 'com.google.android.gms:play-services-auth:8.3.0'-compile 'com.google.android.gms:play-services-auth:8.4.0' Assicurarsi apply plugin: 'com.google.gms.google-services' è in fondo del vostro build.gradle (app) cioè dopo le dipendenze

  2. ho generato una nuova chiave SHA-1. Per generare la chiave SHA-1 incollala nel tuo terminale: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android quindi vai al tuo credentials page e seleziona il tuo progetto.

  3. in client OAuth 2.0, fare clic sulla chiave del client Android. incolla la chiave SHA-1 che hai generato e il nome del pacchetto come indicato. fare clic su Salva.

    1. scaricare un nuovo file google-services.json e incollarlo nella tua app/directory.

Poi prova ad accedere di nuovo. Spero che dovrebbe funzionare. Per ulteriori informazioni, vedere questo post e this as well. Mi ha aiutato a risolvere il mio

+0

I punti 3 e 4 erano i miei problemi. Grazie amico –

+0

sei il benvenuto. Felice di aiutare – NezSpencer

Problemi correlati