2015-12-16 13 views
5

तो मेरी परियोजना का सामना करना एक मुद्दा यह है कि Google के माध्यम से साइन इन लगातार काम नहीं करता है। हां, यह मेरे दोस्त के लिए काम करता है, न कि मुझे अपने कंप्यूटर से, भले ही यह मेरे फोन को पोंछने से पहले कल मेरे लिए काम करता था (फोन दूषित हो गया था)। हमारा लॉगिन कोड Google साइन इन के लिए मानक है, और समस्या यह है कि परिणाम झूठ लौट रहा है मुझे लगता है। कोड:Google साइन इन एंड्रॉइड काम नहीं कर रहा है?

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

मुझे लगता है कि मैं सही ढंग से मेरे ऐप की साख की स्थापना की है, के रूप में यह मेरे डेस्कटॉप से ​​पहले काम से पहले मैं अपने फोन मिटा दिया। ध्यान दें, मेरे दोस्त के पास उनके लैपटॉप से ​​एक ही समस्या थी, लेकिन उनके डेस्कटॉप से ​​काम करने का मुद्दा नहीं है। यकीन नहीं है कि क्या हो रहा है; कोई सुझाव?

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

हल करने में मदद मिली, बस स्पष्ट करने के लिए, साइन इन करने के लिए विंडो दिखाई दे रही है, सही? और फिर जब आप साइन-इन पर क्लिक करते हैं, तो साइन इन बस विफल हो जाता है? – KodyVanRy

+0

@ DuhProgrammer13: हाँ, यह मामला है। – bianca

+0

इस मुद्दे पर कोई कर्षण? मुझे यह समस्या उनके नमूना कोड में भी मिल रही है। – bianca

उत्तर

0

आप जब इस

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

मैं एक ही समस्या थी की तरह GoogleSignInOptions बनाने अपने Android क्लाइंट कुंजी संलग्न करने के लिए की जरूरत है। मैं इसे निम्न कार्य करके हल:

  1. मैं अपने build.gradle के लिए गया था (ऐप्लिकेशन), defaultConfig अंदर और मेरे पैकेज नाम पर applicationId बदल (मैं जानता हूँ कि क्यों यह शुरू में एक ही नहीं था न)। मैं compile 'com.google.android.gms:play-services-auth:8.3.0' से compile 'com.google.android.gms:play-services-auth:8.4.0' में स्विच करने निर्भरता

  2. मैं एक नया SHA-1 कुंजी उत्पन्न के बाद यकीन है कि apply plugin: 'com.google.gms.google-services' अपने build.gradle (ऐप्लिकेशन) अर्थात के नीचे स्थित है बनाओ। एसएचए -1 कुंजी उत्पन्न करने के लिए इसे अपने टर्मिनल में पेस्ट करें: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android फिर अपने credentials page पर जाएं और अपनी परियोजना का चयन करें।

  3. OAuth 2.0 क्लाइंट के तहत, अपने एंड्रॉइड क्लाइंट कुंजी पर क्लिक करें। आपके द्वारा जेनरेट की गई SHA-1 कुंजी और निर्देशित के रूप में अपना पैकेज नाम पेस्ट करें। सहेजें पर क्लिक करें।

    1. एक नई google-services.json फ़ाइल डाउनलोड करें और इसे अपने ऐप/निर्देशिका में पेस्ट करें।

फिर पुनः प्रवेश करके देखें। उम्मीद है कि यह काम करना चाहिए। अधिक जानकारी के लिए, यह post और this as well देखें। इससे मुझे मेरा

+0

अंक 3 और 4 मेरी समस्याएं थीं। धन्यवाद आदमी –

+0

आपका स्वागत है। मदद करने में खुशी – NezSpencer

संबंधित मुद्दे