title: Google SignIn API Exception 10
body: <p>Approaching to the final stage of the authentification, but something is going wrong in <code>handleSignInResult</code> method. It returns Exception code 10 (Developer error) in logs. Google provides comprehensive description: </p>
  
  <blockquote>
    <p>The application is misconfigured. This error is not recoverable and will be treated as fatal. The developer is an idiot...</p>
  </blockquote>
  
  <p>What should I do to handle this (get an account) and finally retrive values from account?<br>
  Thank you in advance for your help!!!</p>
  
  <p>MainActivity:</p>
  
  <pre><code>package ru.podgorny.carcall;
  
  import ...
  
  public class MainActivity extends AppCompatActivity {
  
          SignInButton signInButton;
          public static final int RC_SIGN_IN = 07;
          public static final String TAG = "MainActivity";
          TextView tw1;
          TextView tw2;
  
  
          GoogleSignInOptions gso;
          GoogleSignInClient mGSC;
  
  
          @Override
          protected void onCreate (Bundle savedInstanceState){
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          Log.d(TAG, "Activity Works");
          findViews();
  
              gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                      .requestEmail()
                      //.requestProfile()
                      .build();
  
              mGSC = GoogleSignIn.getClient(this, gso); //smth with mGSC variable....
  
               View.OnClickListener onClickListener = new View.OnClickListener() {
                  @Override
                  public void onClick(View v) {
                      onClick2(v);
                  }
              };
               signInButton.setOnClickListener(onClickListener);
  
  
  
  
      }
  
      private void findViews() {
              Log.d (TAG, "findViews started");
          signInButton = findViewById(R.id.idButtonGoogle);
  
          tw1 = findViewById(R.id.textView1);
          tw1 = findViewById(R.id.textView2);
  
          Log.d(TAG, "Views finded");
  
  
      }
  
      public void onClick2(View view) {
              Log.d(TAG, "onClick started");
          switch (view.getId()) {
              case R.id.idButtonGoogle:
                  signIn();
                  break;
          }
          Log.d(TAG, "OnClick Started");
      }
  
      public void signIn() {
  
          Intent signInIntent = mGSC.getSignInIntent();
          startActivityForResult(signInIntent, RC_SIGN_IN);
          Log.d(TAG, "startActivityForResult works");
  
      }
  
      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          Log.d(TAG, "OnActivityResult started");
          // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
          if (requestCode == RC_SIGN_IN) {
              // The Task returned from this call is always completed, no need to attach
              // a listener.
              Log.d(TAG, "TASK started");
              Task&lt;GoogleSignInAccount&gt; task = GoogleSignIn.getSignedInAccountFromIntent(data);
              handleSignInResult(task);
              Log.d(TAG, "OnActivityResult returned");
          }
      }
  
      private void handleSignInResult(Task&lt;GoogleSignInAccount&gt; completedTask) {
          try {
              GoogleSignInAccount account = completedTask.getResult(ApiException.class);//ERROR -- Code 10
              Log.d(TAG, "Account received");
  
  
              updateUI(account);
              Log.d(TAG, "updateUI Launched");
          } catch (ApiException e) {
  
              Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
              updateUI(null);
          }
      }
  
      private void updateUI(GoogleSignInAccount account) {
              if (account!=null) {
                  tw1.setText("OK");
                  tw2.setText("Name: " + account.getGivenName() + ", Family name: " + account.getFamilyName() + ", Email: " + account.getEmail() /*+ " image: " +
                          account.getPhotoUrl()*/);
              }else {
                  tw1.setText("SMTH wrong");
              }
  
          }
  
  }
  </code></pre>