2015-12-16 3 views
5

私のプロジェクトで発生した問題は、Googleによるログインが一貫して機能しないことです。つまり、昨日私の電話を拭く前に私のために働いていたにもかかわらず、私の友人ではなく、私のコンピュータから私は働いている(電話が壊れている)。私たちのログインコードはGoogleのサインインの標準であり、問​​題は結果が誤って返され続けることです。コード:Googleが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); 
    } 

私のアプリのクレデンシャルを正しく設定していると思います。私は自分の携帯電話を拭く前に以前はデスクトップから機能していたと思います。注目すべきは、私の友人は自分のラップトップから同じ問題を抱えていたが、彼のデスクトップから問題は起こっていないということだ。何が起きているかわからない。助言がありますか?

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を作成するときは、私は同じ問題を抱えていたあなたのアンドロイドクライアントキーを添付する必要があります。 私は、次の操作を行って、それを解決:

  1. を私はdefaultConfigの内側に、私のbuild.gradle(アプリ)に行って、(私はそれが最初に同じことを波平なぜ知らない)私のパッケージ名にアプリケーションIDを変更しました。 私は は私が新しいSHA-1鍵を生成し、依存関係

  2. apply plugin: 'com.google.gms.google-services'はすなわち、あなたのbuild.gradle(アプリ)の一番下にあることを確認してくださいcompile 'com.google.android.gms:play-services-auth:8.4.0'compile 'com.google.android.gms:play-services-auth:8.3.0'から切り替えます。 SHA-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ファイルをダウンロードして、アプリ/ディレクトリに貼り付けます。

次にログインをもう一度試してください。うまくいけばうまくいくはずです。 詳細については、postthis as wellを参照してください。それは私が私の解決に役立った

+0

ポイント3と4は私の問題でした。ありがとう男 –

+0

あなたは大歓迎です。喜んで助ける – NezSpencer

関連する問題