Google Play SignIn funktioniert nicht/Real Time Multiplayer Game ohne Beitrittsgebühren?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ich habe gerade bemerkt, dass es daran liegt, dass RC_SIGN_IN nichts zugewiesen wird. Leider finde ich auch nichts im Internet dazu. Was muss ich dem zuweisen?

    EDIT:
    Ich habe jetzt gefunden, dass ich für RC_SIGN_IN zuvor "private static final int RC_SIGN_IN = 9001;" schreiben muss. Leider ist anscheinend noch bei der Variable intent etwas falsch. Bisher habe ich den Fehler jedoch noch nicht gefunden

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Timer ()

  • mal eine Frage. Hast du dich eigentlich bei Google game angemeldet? Und dort auch ein Projekt erstellt. Habe da keinen Account kann dir dazu auch keine Infos geben. Denn irgendwie must du dich oder besser As mit deinem Projekt bei Google game verbinden. Bei firebase geht das über Tools firebase. Wie das bei Googlegame geht weiß ich nicht.
    Ein Feedback auf Tipps ist auch schön. :P
  • Sorry habe ich vergessen. Mir wird der Wert von resultCode aus irgendeinem Grund nicht angezeigt (alle anderen Variablen und Werte werden mir unten schön aufgelistet).
    Ich bin nun noch einmal alle Tutorials u.ä. durchgegangen, um zu schauen, ob ich irgendetwas vergessen habe hinzuzufügen. Ich habe nun bemerkt, dass ich folgendes Tutorial noch nicht aufgeführt habe (der Link war klein aufgeführt, als ich die OAuth2-Client-ID hinzugefügt habe):
    developers.google.com/games/se…t#step_3_modify_your_code
    Leider gibt es bei mir keine ids.xml und ich weiß auch nicht wie ich die hinzufüge. Soll ich da eine einfach xml Calue Datei erstellen? Und was gehört da alles rein?
  • hast du dir die Beispiele runtergeladen da siehst du was i. Die Dateien gehört.
    Frage nochmal hast du dich bei Google game abgemeldet? Ohne geht es nicht. Hast du dir auch eine Client id erstellt. Und vor allen hast du ein Projekt bei Google game erstellt. Ohne dem ganzen wird es nicht gehen . Wie gesagt ich habe keinen Account und will mich auch nicht anmelden. Deshalb kann ich da wenig helfen.
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jogimuc ()

  • Ja den Account habe ich erstellt. Client ID und Projekt auch.
    Und danke habe die File in den Samples übersehen. Ich habe die nun nachgetragen und nun kommt auch ein grüner Ladescreen (grüner kreisförmiger Ladebalken) und dann ein Google Play Spiele Bild. Leider wird das nach kurzem Laden abgebrochen und der Bildschirm wird wieder dunkel und es erscheint die leere Fehlermeldung (PopUp mit nichts drin)
    Ich habe nun noch einmal breakpoint gemacht und nun einen Wert für resultCode bekommen. Der ist nun 0

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Timer ()

  • ja weil die app auch gleich online bei Google play ist. Ist aber in früheren post geschrieben wurden . Und wen eine App apk Datei online ist muss sie signiert sein. Aber du brauchst nicht für jede App einen neuen Schlüssel. Als Entwickler macht man sich einen und den benutz man für alle signierten apk .
    Ein Feedback auf Tipps ist auch schön. :P
  • Danke das hat sehr geholfen.
    Leider ist es immer noch gleich:
    1. Der Hintergrund verdunkelt sich
    2. Der Google Play Spiele Ladescreen und das Logo öffnen sich
    3. Das Logo schließt sich wieder
    4. Der Bildschirm bleibt verdunkelt und es öffnet sich ein leeres PopUp im Hintergrund
    Woran kann das sonst noch liegen? Ich bisher folgendes gemacht, um meine App für das Sign In von Google Play hinzubekommen:
    • Verknüpfte Apps (Android App eingestellt)
    • AndroidMainfest.xml editiert
    • ids.xml editiert
    • google-services.json erstellt
    Hab ich da irgendwas vergessen?

    EDIT:
    Mir ist gerade aufgefallen, dass bei signInSilently "<GoogleSignInAccount>" steht. Muss ich das ersetzen oder kann ich das so lassen?

    EDIT2:
    Ich woltle gerade nachschauen, ob bei signin_other_errors ein Code ausgegeben wird. Dabei ist mir aufgefallen, dass dort zwar ein int hinterlegt ist, jedoch wird dieser nicht an message übergeben (message sit danach 0). Woran liegt das?
    signin_other_errors ist 2131427382

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Timer ()

  • hi wenn ich das richtig sehe hast du die anmelde Art gewählt für einen User der noch keinen Account hatt. Du hast aber doch einen bist also wahrscheinlich schon registriert und das merkt wohl Google und bricht die Anmeldung ab. Prüfe das mal. Und versuche die andere anmeldet Art ohne intent.
    Ein Feedback auf Tipps ist auch schön. :P
  • Ich habe jetzt einfach mal eine isSignedIn Abfrage zuvor geschaltet. Bringt leider trotzdem nichts:

    Quellcode

    1. private boolean isSignedIn() {
    2. return GoogleSignIn.getLastSignedInAccount(this) != null;
    3. }
    4. private void signInSilently() {
    5. if(!isSignedIn()) {
    6. GoogleSignInClient signInClient = GoogleSignIn.getClient(this, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
    7. signInClient.silentSignIn().addOnCompleteListener(this, new OnCompleteListener<GoogleSignInAccount>() {
    8. @Override
    9. public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
    10. if (task.isSuccessful()) {
    11. GoogleSignInAccount signedInAccount = task.getResult();
    12. } else {
    13. startSignInIntent();
    14. }
    15. }
    16. });
    17. }
    18. }
    Alles anzeigen
  • Was wird bei getLastSignedInAccount zurückgegeben? Benutze dafür mal eine variable.
    • GoogleSignInAccount from last known successful sign-in. If user has never signed in before or has signed out / revoked access, null is returned.
    denke du müsstest das Ergebnis zu boolean Carsten oder ein if benutzen.
    Das ganze sieht mir nach doppelter Verneinung aus prüfe das im debuger.
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von jogimuc ()

  • Hi, du hast auch keine richtige Instanz GoogelSignInOption mit new erstellt.
    developers.google.com/identity/sign-in/android/sign-in




    Quellcode

    1. // Configure sign-in to request the user's ID, email address, and basic
    2. // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
    3. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    4. .requestEmail()
    5. .build();
    6. // Build a GoogleSignInClient with the options specified by gso.
    7. mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
    8. // Check for existing Google Sign In account, if the user is already signed in
    9. // the GoogleSignInAccount will be non-null.
    10. GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
    11. updateUI(account);
    Alles anzeigen
    auserdem ist die Variable GoogleSignIn noch gar nicht erstellt zu dem zeitpunkt der if abfrage.
    in etwa so.


    Quellcode

    1. private boolean isSignedIn() {
    2. GoogleSignInClient signInClient2 = GoogleSignIn.getClient(this, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
    3. return singnInClient2.getLastSignedInAccount(this) != null;
    4. }
    5. private void signInSilently() {
    6. if(!isSignedIn()) {
    7. GoogleSignInClient signInClient = GoogleSignIn.getClient(this, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
    8. signInClient.silentSignIn().addOnCompleteListener(this, new OnCompleteListener<GoogleSignInAccount>() {
    9. @Override
    10. public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
    11. if (task.isSuccessful()) {
    12. GoogleSignInAccount signedInAccount = task.getResult();
    13. } else {
    14. startSignInIntent();
    15. }
    16. }
    17. });
    18. }
    19. }
    Alles anzeigen
    oder erstelle signInClient global.
    Ein Feedback auf Tipps ist auch schön. :P
  • jogimuc schrieb:

    Hi, du hast auch keine richtige Instanz GoogelSignInOption mit new erstellt.
    developers.google.com/identity/sign-in/android/sign-in

    Quellcode

    1. // Configure sign-in to request the user's ID, email address, and basic
    2. // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
    3. GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    4. .requestEmail()
    5. .build();
    6. // Build a GoogleSignInClient with the options specified by gso.
    7. mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
    8. // Check for existing Google Sign In account, if the user is already signed in
    9. // the GoogleSignInAccount will be non-null.
    10. GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
    11. updateUI(account);
    Alles anzeigen
    Das mit der Instanz muss man doch gar nicht tun oder? Das ist doch eine Funktion oder nicht? developers.google.com/android/…ignin/GoogleSignInOptions
    Das ist (so hört sich das für mich an und habe ich auch im Internet gelesen) für ein Google Login Button.
    Ich würde jedoch ganz gerne in meinem Spiel einen Google Play Spiele Login machen, denn ich glaube, dass man nur mit einem Google Play Spiele Login ein Real-Time-Multiplayer einrichten kann oder?

    jogimuc schrieb:

    auserdem ist die Variable GoogleSignIn noch gar nicht erstellt zu dem zeitpunkt der if abfrage.

    in etwa so.



    Quellcode

    1. private boolean isSignedIn() {
    2. GoogleSignInClient signInClient2 = GoogleSignIn.getClient(this, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
    3. return singnInClient2.getLastSignedInAccount(this) != null;
    4. }
    5. private void signInSilently() {
    6. if(!isSignedIn()) {
    7. GoogleSignInClient signInClient = GoogleSignIn.getClient(this, GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
    8. signInClient.silentSignIn().addOnCompleteListener(this, new OnCompleteListener<GoogleSignInAccount>() {
    9. @Override
    10. public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
    11. if (task.isSuccessful()) {
    12. GoogleSignInAccount signedInAccount = task.getResult();
    13. } else {
    14. startSignInIntent();
    15. }
    16. }
    17. });
    18. }
    19. }
    Alles anzeigen
    oder erstelle signInClient global.
    Das sollte doch so reichen wie ich das habe oder nicht? Dein Code funktioniert bei mir leider nicht (obwohl ich den Schreibfehler bei dem return rausgemacht hab). Da steht dann bei getLastSignedInAccount "Cannot resolve method 'getLastSignedInAccount(de. ... .SignIn)'"
    Wenn ich signInClient gloabal erstelle und beim return rein mache, kommt der gleiche Fehler wie zuvor