Google Play-Spieldienste: merkwürdiges Anmeldeverhalten

8

Vor kurzem habe ich den Google Play Game Services-Support in meiner App hinzugefügt (BaseGameActivity und GameHelper hinzugefügt), und der Workflow für die Anmeldung und Abmeldung funktionierte einwandfrei. In meinem Grafik-Thread sende ich eine Nachricht an den Hauptaktivitäts-Handler, sie ruft beginUserInitiatedSignIn oder signOut auf. Wenn der Identifizierungsprozess abgeschlossen ist, ruft Game Helper onSignInFailed oder onSignInSucceeded von meiner Aktivität auf und ich kann isSignedIn überprüfen (true, wenn onSignInSucceeded aufgerufen wurde).

Aber heute habe ich festgestellt, dass es sich jetzt seltsam verhält. Leider habe ich die letzte funktionierende Version nicht gesichert, aber der essense Code ist der selbe.

Wenn ich die App anrufe, um mich anzumelden, wird der Anmeldedialog für Google-Dienste angezeigt (ich habe 2 Konten auf meinem Gerät). Ich wähle ein Konto, drücke ok, es kehrt zu meiner App zurück, aber weder onSignInSucceeded noch onSignInFailed wird aufgerufen (vorher, wenn ich diesen Dialog abgebrochen habe, habe ich die Nachricht "unbekannter Fehler" gesehen). Wenn ich mich beim zweiten Mal anmelde, wird ein rotierender Kreis gestartet und endlos gewartet. Wenn ich auf den Bildschirm tippe, bricht es das Warten ab und kehrt zu meiner Ansicht zurück.

Obwohl ich die App schließe und sie noch einmal starte, meldet sie sich beim Start erfolgreich an, ruft onSignSucceded auf und bleibt verbunden, wenn ich die Laufzeit einchecke. Es sagt:

%Vor%

Wenn ich mich abmelde und versuche, mich erneut anzumelden, wird der Konten-Dialog angezeigt und Folgendes geschrieben:

%Vor%

Wenn ich ein Konto auswähle, kehrt es zu meiner Aktivität zurück und es wird weder onSignInSucceeded noch onSignInFailed aufgerufen. Wenn ich die Laufzeit einchecke, sehe ich, dass die App nicht mit Google Services verbunden ist. Wenn ich mich erneut anmelde, wird der kreisförmige Kreis immer angezeigt und es wird angezeigt:

%Vor%

Wenn ich auf den Bildschirm tippe, wird der Kreis ohne Aufrufe von onSignInSucceeded und onSignInFailed usw. abgebrochen.

Ich kann mir nicht vorstellen, was falsch gelaufen ist. Handler wird am Hauptthread erstellt. Ich habe Google Beispiel, und es anmeldet und abmeldet ohne Probleme, genau wie meine App. Kann jemand sagen, was falsch ist? Danke!

    
Tertium 28.05.2013, 22:49
quelle

1 Antwort

25

Es hat 2 Tage gedauert, einen dummen Fehler zu finden. Wenn Sie BaseGameActivity erweitern, stellen Sie sicher, dass Sie alle Methoden in Ihren Aktivitätsmethoden aufrufen (wenn Sie sie überschreiben), zum Beispiel:

%Vor%

BaseGameActivity ruft seine aggregierten mHelper-Methoden auf, die all die Magie vollbringen.

    
Tertium 31.05.2013, 16:14
quelle