Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
MonoGame Android Wie kann ich eine Textdatei in Android laden?
Ich habe meinem Android Projekt eine Textdatei hinzugefügt. In der Textdatei befindet sich Text der bei jedem Spielstart geladen werden soll. Der Text in der Datei wird nie geändert werden. Man lädt also immer den gleichen Text bei jedem Spielstart aus der Datei. Bei iOS konnte ich die Textdatei mit folgendem Code laden, jedoch funktioniert das nicht bei Android. Die Build Action der Textdatei steht auf Content. Ist mein erstes Android Projekt.
Wenn sie in den Assets gespeichert wird, wird sie nirgends als Datei auftauchen. Und wenn sie nicht als Asset abgelegt wurde, dann taucht sie vermutlich nie auf, egal wie
Anders ausgedrückt: Sollte diese Datei nicht im Assets-Ordner liegen?
Danke für den Tipp Nachdem ich die Datei in den Assets Ordner verschoben habe funktiniert es. Die Build Action wurde dadurch auch automatisch auf AndroidAsset gesetzt.
Weil SharedPreferences nicht gedacht sind für große Daten und entsprechend der App-Start und das Laden langsam ist. Binär-Dateien gehören da echt nicht rein. SharedPrefs laden halt alles, was da drin steht, auch wenn du nur gewisse Teile daraus brauchst, da sie in XML abgelegt werden. Hast du also dort User-Settings drin gespeichert und willst diese anziehen, müssen auch die Binär-Daten mit geladen werden. Bitte nicht machen.
Davon mal abgesehen musst du trotzdem erst ein Asset laden und es in den SharedPreferences ablegen, was die Sache also aufwendiger macht als nur das Asset zu laden. Letztlich sind Assets eben genau für solche Dateien gedacht.
PS: Da wir gerade über Android-Storage reden, werfe ich mal noch die Realm-Datenbank in den Raum, auch wenn das nicht für den hier notwendigen Anwendungszweck passt.
Bei iOS füge ich meine Textdateien einfach immer dem Projekt hinzu. Bei iOS gibt es ja keinen speziellen Ordner für das Ablegen der Dateien und das Laden der Dateien mit TitleContainer.OpenStream(filename) hat so auch noch immer funktioniert.
Oder sollte man die Textdateien auch bei iOS in einem dafür vorgesehenen Ordner ablegen?
Musst du nicht, aber der Übersicht halber wäre ein Unterordner schon nicht ganz verkehrt. Würde ich auch bei den Assets unter Android empfehlen, um etwas Übersicht und Ordnung zu halten. Übrigens sind Symlinks für solche Unterschiede und Unannehmlichkeiten ziemlich praktisch