Гугл Аут. в Android

Я использовал учебник Google https://developers.google.com/identity/sign-in/android/start-integrating. Но когда я нажимаю кнопку входа, приложение вылетает с сообщением:

com.google.android.gms.common.api.ApiException: 8:

Я искал эту ошибку и нашел: https://developers.google.com/android/reference/com/google/android/gms/common/api/CommonStatusCodes.html#INTERNAL_ERROR, но, как видите, нет объяснения, почему возникает эта ошибка. .

Вот код Java:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private static final int RC_SIGN_IN = 9001;
private GoogleSignInClient mGoogleSignInClient;
private SignInButton signInButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
    signInButton = findViewById(R.id.sign_in_button);
    signInButton.setOnClickListener(this);
}

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

private void signIn() {
    Intent signInIntent = mGoogleSignInClient.getSignInIntent();
    signInIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    startActivityForResult(signInIntent, RC_SIGN_IN);
}

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

    // 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.
        Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
        //handleSignInResult(task);
        try {
            GoogleSignInAccount account = task.getResult(ApiException.class);
            Log.i("User",account.toString());
            Log.i("Mail",account.getEmail());
            Log.i("Name",account.getDisplayName());
        } catch (ApiException e) {
            e.printStackTrace();
            Log.i("Error",e.getMessage());
        }
    }
    else {
        Log.i("User","invalid");
    }
}

Вот макет действия выше:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.gms.common.SignInButton
    android:id="@+id/sign_in_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>

person Tugberk    schedule 17.04.2018    source источник
comment
Проверьте это stackoverflow.com/a/47448899/5518027   -  person Arpan Sarkar    schedule 17.04.2018
comment
Я уже сделал это.   -  person Tugberk    schedule 17.04.2018
comment
Существуют разные причины для ApiException: 8. У меня это происходит при загрузке файлов java.util.concurrent.ExecutionException с Google Диска. Что касается меня, я считаю, что сервисы Google вызывают это, поскольку это может произойти только один раз из примерно 900 раз, и сервисы Google дают сбой, даже если файлы продолжают загружаться. Может быть, этот комментарий кому-то покажется полезным, но ApiException: 8 совершенно отстой.   -  person CmosBattery    schedule 10.06.2018