Kojote Geschrieben 21. September 2017 Melden Share Geschrieben 21. September 2017 Grüße! Habe gerade ein paar Probleme Daten in Android zu schreibe. Im Awake befindet sich dieser Teil: if (Application.isMobilePlatform == true) { if (File.Exists("jar:file://" + Application.persistentDataPath + "/db/spielerdaten.dat")) { BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream fileStream = File.Open("jar:file://" + Application.persistentDataPath + "/db/spielerdaten.dat", FileMode.Open); Spielderdaten data = (Spielderdaten)binaryFormatter.Deserialize(fileStream); einstellungZahlHilfe = data.einstellungZahlHilfe; einstellungZahlSprache = data.einstellungZahlSprache; einstellungZahlSpielzeit = data.einstellungZahlSpielzeit; einstellungZahlStatistik = data.einstellungZahlStatistik; einstellungZahlWachbleiben = data.einstellungZahlWachbleiben; einstellungZahlLinkshaenderModus = data.einstellungZahlLinkshaenderModus; einstellungZahlMusikProzentZahl = data.einstellungZahlMusikProzentZahl; einstellungZahlSFXProzentZahl = data.einstellungZahlSFXProzentZahl; einstellungZahlMusikTrackNummer = data.einstellungZahlMusikTrackNummer; fileStream.Close(); } else { SpieleMenueSpeichern(); } } else { if (File.Exists(Application.dataPath + "/spielerdaten.dat")) { BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream fileStream = File.Open(Application.dataPath + "/spielerdaten.dat", FileMode.Open); Spielderdaten data = (Spielderdaten)binaryFormatter.Deserialize(fileStream); einstellungZahlHilfe = data.einstellungZahlHilfe; einstellungZahlSprache = data.einstellungZahlSprache; einstellungZahlSpielzeit = data.einstellungZahlSpielzeit; einstellungZahlStatistik = data.einstellungZahlStatistik; einstellungZahlWachbleiben = data.einstellungZahlWachbleiben; einstellungZahlLinkshaenderModus = data.einstellungZahlLinkshaenderModus; einstellungZahlMusikProzentZahl = data.einstellungZahlMusikProzentZahl; einstellungZahlSFXProzentZahl = data.einstellungZahlSFXProzentZahl; einstellungZahlMusikTrackNummer = data.einstellungZahlMusikTrackNummer; fileStream.Close(); } else { SpieleMenueSpeichern(); } } Beim ersten Start, kann die Datei gar nicht vorhanden sein, also würde die Else-Klausel aufgrufen: private void MenueEinstellungenSpeichern() { BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream fileStream; if (Application.isMobilePlatform == true) { fileStream = File.Create("jar:file://" + Application.persistentDataPath + "!/assets/" + "/db/spielerdaten.dat"); } else { fileStream = File.Create(Application.dataPath + "/spielerdaten.dat"); } Spielderdaten data = new Spielderdaten(); data.einstellungZahlHilfe = einstellungZahlHilfe; data.einstellungZahlSprache = einstellungZahlSprache; data.einstellungZahlSpielzeit = einstellungZahlSpielzeit; data.einstellungZahlStatistik = einstellungZahlStatistik; data.einstellungZahlWachbleiben = einstellungZahlWachbleiben; data.einstellungZahlLinkshaenderModus = einstellungZahlLinkshaenderModus; data.einstellungZahlMusikProzentZahl = einstellungZahlMusikProzentZahl; data.einstellungZahlSFXProzentZahl = einstellungZahlSFXProzentZahl; data.einstellungZahlMusikTrackNummer = einstellungZahlMusikTrackNummer; binaryFormatter.Serialize(fileStream, data); fileStream.Close(); } Wie ihr seht, frage ich ab, ob es sich um ein Android System handelt oder ob es sich um ein normales Windows System handelt. In Windows funktioniert nach dem Compilieren alles ohne Problem. Die Dateien werden angelegt und aus ihnen kann auch gelsen werden. Anders siehts jedoch in Android aus, hier wird aus irgend einem Grund die Datei nicht erstellt. Ich habe mich hier ans Manual gehalten: https://docs.unity3d.com/Manual/StreamingAssets.html Sehr ihr den Fehler oder könnt mir weiter helfen? Vielen Dank und Grüße von Kojote Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 21. September 2017 Autor Melden Share Geschrieben 21. September 2017 Fehler gefunden: FileStream fileStream = File.Open("jar:file://" + Application.persistentDataPath + "/db/spielerdaten.dat", FileMode.Open); Richtig müsste es heißen: FileStream fileStream = File.Open(Application.persistentDataPath + "/spielerdaten.dat", FileMode.Open); Da war ein Ordner nicht vorhanden. Kleiner Fehler, große Wirkung! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.