I am getting Folgender error:IllegalStateException auf sign zu Google api client
java.lang.IllegalStateException: Cannot use sign-in mode: SIGN_IN_MODE_OPTIONAL. Mode was already set to SIGN_IN_MODE_NONE
Was does diese mean? Wie man es verhindert?
Der Vorschlag, in anderen ähnlichen SO Frage war
mGoogleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL);
Aber ich habe dies selbst im Einsatz.
Hier ist die onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_OAUTH) {
authInProgress = false;
if (resultCode == RESULT_OK) {
progressDialog.dismiss();
if (!googleApiClient.isConnecting() && !googleApiClient.isConnected()) {
googleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL);
} else {
onConnected(null);
}
} else if (resultCode == RESULT_CANCELED) {
progressDialog.dismiss();
startApiClientConnect();
}
} else {
progressDialog.dismiss();
startApiClientConnect();
}
}
Nach dem ersten Verbindungsversuch, wenn es nicht erfolgreich war, dann die googleApiClient.connect
im onActivityResult
erneut versucht wird. Ich glaube, das ist ein erneuter Versuch, der das Problem verursacht. Nach einem anfänglichen Verbindungsfehler/einer Benutzeraktion wird SIGN_IN_MODE_NONE ausgeführt.
Wie geht das?
wie ein plausibler Grund scheint. Aber hier ist eine Anweisung für 'public void connect (int signInMode)'. Gemäß der Dokumentation: Es ist ein Fehler, mehrere Aufrufe dieser Methode zu machen, die verschiedene Modi übergeben. Sobald ein Modus ausgewählt ist, müssen alle zukünftigen Verbindungsanrufe denselben Modus verwenden. Wie hat sich dann der Modus zu 'SIGN_IN_MODE_NONE' geändert? – suku
Ich denke es liegt daran, dass Sie 'public void connect()' vor 'public void connect (int)' aufrufen, da 'SIGN_IN_MODE_NONE' keine Option als Parameter ist. Suchen Sie danach und wählen Sie entweder Modus keine oder Modus optional. Ich denke der andere SO Post, auf den Sie sich beziehen, ist [dies] (http://stackoverflow.com/questions/36063607/google-signin-not-working). Ich bin mir nicht sicher, ob Sie versuchen, sich wie er anzumelden, aber für mein Login habe ich dies in meinem 'onConnectionFailedListener':' result.startResolutionForResult (MainActivity.this, REQUEST_LOGIN); 'Das öffnete den Login-Dialog –
Ja, ich bezog sich auf diese Frage SO. Ich hatte 'result.startResolutionForResult' aber immer noch diesen Fehler. Leider war der Fehler zu meinem Ende nie reproduzierbar, aber die Absturzberichte von Kunden zeigten es. Ich habe versucht, die Callbacks erneut zu registrieren und dann wieder 'googleApiClient.connect (GoogleApiClient.SIGN_IN_MODE_OPTIONAL)'. Ich habe noch keinen Absturzbericht erhalten, aber es sind frühe Tage. Kann nicht bestätigen, wie dies das Problem verhindert. – suku