[Fixed] Fehler beim Laden von Städten

...falls Ihr Fehler in TheoTown findet
User avatar
torwin
Settler
Reactions:
Posts: 3
Joined: 23 May 2016, 21:52
Plugins: Showcase Store

[Fixed] Fehler beim Laden von Städten

#1

Post by torwin »

Seit einem der letzten Updates lassen sich gespeicherte Städte auf meinem Nexus 9 nicht mehr laden.
Ich verwende die aktuelle Android N Preview, aber vielleicht lässt sich das Problem trotzdem lösen.

Die App hat die Berechtigung zum Schreiben auf den Speicher. Es werden auch Daten gespeichert. Beim Öffnen kommt allerdings die Meldung "Laden fehlgeschlagen".

Ich habe beim Laden mal "adb logcat" laufen lassen und folgende Meldungen gesehen:

Code: Select all

E CityKeeper: java.util.zip.ZipException: Not in GZIP format
I StopWatch: Needed 3ms to process step Read file of load city
I StopWatch: Needed 0ms to process step Prepare city of load city
I StopWatch: Needed 3ms to proceed load city
I GameStack: Leave stage LoadCityStage
Wäre super, wenn sich das Problem lösen lässt.
Das Spiel ist nämlich sehr gut und ich würde es gerne wieder spielen können, ohne die Stände zu verlieren.

User avatar
Lobby
Developer
Reactions:
Posts: 3705
Joined: 26 Oct 2008, 12:34
Plugins: Showcase Store
Version: Beta

Platform

#2

Post by Lobby »

Sieht nach einem Fehler in der gzip-Implementierung aus :?
Besteht das Problem noch immer?

User avatar
torwin
Settler
Reactions:
Posts: 3
Joined: 23 May 2016, 21:52
Plugins: Showcase Store

#3

Post by torwin »

Das Problem besteht leider immer noch :(

Habe gerade das neuste Android Update installiert, es hat jedoch keine Besserung gebracht.

Wäre echt super, wenn das Laden wieder funktionieren würde. Hat ja schließlich unter Android N bis zu einem TheoTown Update funktioniert.

Es ist ein wirklich super Spiel. Würde es gerne wieder auf auf dem Tablet spielen können.

User avatar
Lobby
Developer
Reactions:
Posts: 3705
Joined: 26 Oct 2008, 12:34
Plugins: Showcase Store
Version: Beta

Platform

#4

Post by Lobby »

Vielleicht ist es auch ein Problem beim Speichern. Kannst du mir bitte mal eine solche Stadt an info[at]theotown.de schicken? Dann könnte ich das mal ausschließen. Die Städte liegen unter TheoTown/maps

Ansonsten fällt mir als naive Lösung nur ein, die Komprimierung ausschaltbar zu machen, aber dann werden die Dateien enorm groß.

User avatar
Lobby
Developer
Reactions:
Posts: 3705
Joined: 26 Oct 2008, 12:34
Plugins: Showcase Store
Version: Beta

Platform

#5

Post by Lobby »

Vielen Dank nochmals für die Unterstützung. Ich konnte den Fehler nun endlich lokalisieren. Er liegt im

Code: Select all

stream.skip(skipBytes);
Dieser wird beim Laden dazu benutzt, den Header der Stadtdatei zu überspringen. In Versionen vor Android N hat dieser problemlos funktioniert.

Offenbar wurde die Implementierung dahingehend geändert, dass nun nicht mehr die angegebene Anzahl von Bytes übersprungen wird, wenn man auf einem BufferedInputStream arbeitet. Daher muss man nun die Rückgabe der skip(...)-Methode beachten, und wenn nötig nochmals aufrufen. Das sieht nun so aus

Code: Select all

while (skipBytes > 0) {
    skipBytes -= stream.skip(skipBytes);
}
Alles in allem ist das Problem damit behoben (Version 158) :)

User avatar
theotheoderich
The Theo in TheoTown
Reactions:
Posts: 821
Joined: 24 Jan 2008, 14:11
Location: Ruhrgebiet
Plugins: Showcase Store

#6

Post by theotheoderich »

wird

Code: Select all

skipBytes 
denn wirklich irgendwann zwingend immer

Code: Select all

> 0
, oder gibt es die Wahrscheinlichkeit einer Endlosschleife?

User avatar
Lobby
Developer
Reactions:
Posts: 3705
Joined: 26 Oct 2008, 12:34
Plugins: Showcase Store
Version: Beta

Platform

#7

Post by Lobby »

'Sollte' nicht vorkommen können, sicherheitshalber habe ich noch ein

Code: Select all

stream.available() > 0
ergänzt. Das stellt sicher, dass noch Bytes zum Überspringen vorhanden sind.

User avatar
torwin
Settler
Reactions:
Posts: 3
Joined: 23 May 2016, 21:52
Plugins: Showcase Store

#8

Post by torwin »

Vielen Dank für die Behebung.
Funktioniert jetzt einwandfrei.

Post Reply Previous topicNext topic

Return to “Fehler und Probleme (Bugs!)”