Google Saved Games (writeSnapshot)

  • Hallo zusammen,


    ich bin mittlerweile am Verzweifeln, weswegen ich mich erstmals in einem Forum angemeldet habe. Also verzeiht bitte etwaige Fehler bezüglich falscher Kategorie oder dergleichen.


    zu meinem Problem, ich möchte für mein Spiel den Saved Games Cloud Service von Google nutzen.


    Konnte auch soweit alles einfügen und mit meinem Spiel verbinden. Anmelden funktioniert auch soweit.


    Nun bekomme ich den Fehler einer null Object Referenz, beim Schreiben der Bytes.


    Beim Build tritt kein Fehler auf, also dachte ich es liegt am Format. Habe es mit Strings, Long, Integer, Bytes u.s.w versucht auch mit verschiedenen Konvertierungen (z.b. getBytes()). Aber ständig das gleiche Ergebnis.


    Wie muss ich dieses Byte Array deklarieren damit es von der Methode erkannt wird?


    Vielen Dank für eure Hilfe ;)


    Hier ein Ausschnitt aller relevanten Codeabschnitte





    Im Spiel writeSnapshot(snapshot, byteTest, image, mCurrentSaveName);


    Und der Fehlercode


    java.lang.NullPointerException: Attempt to invoke interface method 'com.google.android.gms.games.snapshot.SnapshotContents com.google.android.gms.games.snapshot.Snapshot.getSnapshotContents()' on a null object reference

  • Hi,


    Im Stacktrace kannst du genauehen, in welcher Zeile Du ein Problem hast. Der Nullpointer bedeutet, dass ein Objekt nicht initialisiert wurde und du dementsprechend noch keine Methode mit dem Objet ausführen kannst.
    Dir fehl irgendwo eine Initialisierung des Objektes z.B. in der Form


    Klasse objekt = new Klasse (...)

  • Danke vielmals, ich war so fixiert auf den Byte Array Parameter, dass ich übersehen habe das es am Snapshot Parameter lag. ;)




    Gut, das Snapshot Problem ist geklärt, doch der Fehler tritt jetzt beim Byte Array auf. initialisiert ist es, meines erachtens.


    public byte[] byteTest;im SpielbyteTest = new byte[10];habe es mit Werten gefüllt, gleiches Ergebnis.

  • In der Logcat ausgabe siehst du nicht nur welche Zeile sondern auch noch direkt welches Objekt. Du hast versucht eine Methode getSnapshotContents() auf ein null objekt anzuwenden. Damit kannst du einfach schauen wo die methode aufgerufen wird und hast schon das Objekt was nicht initialisiert ist.


    Also merke: immer genau die Fehlermeldungen lesen :P

  • Die Fehlermeldung hatte leider nicht viel gebracht, der fehler lag im endeffekt irgendwo tiefer im Code.
    Zugegeben der Code von Google ist auch sehr verwirrend.
    Für diejenigen welche auch Probleme damit haben sollten, ich habe es dann so gelöst, dass ich das Saved Game Sample von Google kopiert habe, dann alle Programmabschnitte mit der veralteten AppStateApi
    gelöscht und diverse Anpassungen bezüglich der Views vorgenommen habe, da ich eine Engine benutze und keine Views.


    Aber danke an alle die geholfen haben ;)

  • Denke auch, irgendwo hab ich bestimmt was übersehen. Ich habe nun alles soweit zum laufen gebracht. Nur gibt es bei der Verbindung Probleme vieleicht kennt ja jemand den Fehler und hatte schon Erfahrung damit.


    Es scheint dass ich als Nutzer irgendwie nicht angemeldet bin. In der App aber schon, neu ab und wieder anmelden bringt leider auch nichts.


    Kann es sein dass ich in der App außer der Id noch irgend eine Art Schlüssel intigrieren muss?


    Danke für eure Hilfe



    Und im Log steht folgendes


Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!