Dein Save Game funktioniert in deinem Android Spiel nicht mehr? Vermutlich verwendest du die Unreal Engine 4.27 und die Android Target SDK ’30‘. Ärgerlich, aber nicht unlösbar, denn damit beschäftigen wir uns in diesem Beitrag!
Erstmal solltest du verstehen das dein Save System nicht unbedingt ’nicht‘ funktioniert, sondern das es meistens an Lese- oder Schreibberechtigungen scheitert, alternativ aber daran, dass dein Save System nicht richtig oder rechtzeitig geladen wird.
UE4.27 - Android Permissions einstellen
Der Google Play Store verlangt seit mitte des Jahres 2021, dass alle neuen Android Apps auf der Target SDK 30 laufen. Dies ist mit der Unreal Engine 4.27 und 4.26 möglich. Jedoch wurden ein paar Kleinigkeiten im Dateisystem geändert, wo durch dein Save System das du vermutlich im ‚Game Mode‘ initalizierst, nicht funktioniert.
- Die Game Instance ist die Lösung
Statt dein Save System im Game Mode zu initialisieren, verwende lieber die Game Instance, denn diese wird immer als erstes geladen. So verhinderst du weitere Fehler. Ebenfalls werden wir in der Game Instance der Unreal Engine 4.27 auch noch Dateiberechtigungen für Android überprüfen und anfordern. Dafür machst du folgendes:
- Öffne deine Unreal Engine und erstelle eine neue Game Instance. Wenn du schon eine erstellt hast, kannst du diese dafür auch einfach nutzen.
- Um eine Game Instance zu erstellen, geh in den Content Browser und mache einen Rechtsklick, klicke nun auf ‚Blueprint Class‘.
- Klicke unten auf ‚All Classes‘ und suche dort nach ‚Game Instance‘.
- Klicke auf ‚Game Instance‘ drauf und bestätige unten bei ‚Select‘.
- Öffne deine vorhandene oder erstelle ‚Game Instance‘ Datei.
- Füge nun das Event ‚Init‘ hinzu. Mache dafür einen Rechtsklick und suche nach ‚Event Init‘ im Suchfeld.
- Ziehe nun den Exec Output von ‚Event Init‘ heraus und suche nach:
‚Check Android Permission‘ – Füge diese Node hinzu.
- Auf der rechten Seite kannst du den Vorgang ebenso als Bild sehen.
- In der Node ‚Check Android Permission‘ geben wir jetzt die External Storage Permissione ein. Diese benötigen wir um zu überprüfen ob auf den Speicher zugegriffen werden kann.
android.permission.WRITE_EXTERNAL_STORAGE - Nach der Branch Node werden wir bei ‚false‘ jetzt die Node ‚Request Android Permissions‘ hinzufügen, denn ansonsten haben wir die Permission gegebenfalls nicht. Diese Node hat einen String-Array-Input.
Erstell eine neue Variable (Typ: String Array) und füge folgende Permission hinzu:- android.permission.WRITE_EXTERNAL_STORAGE
- android.permission.READ_EXTERNAL_STORAGE
- Als nächstes ziehst du den Output ‚Return Value‘ von ‚Request Android Permissions‘ heraus und suchst nach ‚Bind Event to Permissions Granted Dynamic Delegate‘.
- Verbinde alles wie auf dem Bild rechts.
Alternativ kannst du auch einfach diesen Code hier mit STRG+C kopieren und mit STRG+V in deiner Game Instance einfügen:
https://defconnet.work/dl/tut/tutorial_android_savegame_permissions.txt
- Öffne deine Unreal Engine Project Settings.
- Wähle den Punkt (links) ‚Android‘ aus um in das Android Platform Settings zu kommen.
- Hier kann es zu der Fehlermeldung '.uproject Descriptor not found' beim App-Start kommen. Leider gibt es dafür momentan keinen mir bekannten Fix, aber du kannst deine App im Distribution / Shipping Build exportieren um das Problem zu umgehen. Nachteil: Du musst jedes mal deine App in den Store hochladen.
- Ändere hier die ‚Target SDK Version‚ auf 30, denn das wird aktuell vom Google Play Store verlangt.
- Setzte ebenso einen Haken bei ‚Use ExternalFilesDir for UE4Game files?‘
- Sollte die SDK Version 30 bei dir nicht funktionieren (im Build), dann musst du unbedingt deine Android NDK und SDK Version updaten und unter dem UE Project Settings Menu ‚Android SDK‘ erneuern / bzw. editieren.
- Füge jetzt weiter unten unter dem Menüpunkt ‚Advanced APK Packaging‚ folgendes hinzu:
- Gehe auf ‚Extra Permissions‘:
- android.permission.WRITE_EXTERNAL_STORAGE
- Jetzt kannst du dein Spiel launchen oder exportieren. Ab diesem Punkt sollte dein Save Game ohne weitere Probleme funktionieren und auf deinem Endgerät Daten speichern und abrufen können. Es kann auch passieren, dass dein Handy oder ein Sicherheitsprogramm manchmal den Zugriff auf die externe oder interne Speicherkarte verhindert.
Video Tutorial
Kommentare & Feedback
Sehr geehrter Besucher, du kannst gerne kommentieren, ob es bei dir geklappt hat oder nicht. Feedback ist auch immer gerne gesehen, um das Design und den Aufbau von Artikeln benutzerfreundlicher zu gestalten. Bitte bleib sachlich und freundlich gegenüber dem Autor und anderen Kommentatoren. Solltest du auf ein Problem gestoßen sein, bitte beschreibe es so detailliert wie möglich.
Hier geht es zu der deutsche DerSky Discord Community (größte deutsche Unreal Community).