Save up to 70% on our assets during the Black Friday sale in the Unreal Marketplace

Suche
Close this search box.

So funktionieren Android Save Games (UE4.27)

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.

Unreal Engine 4.27 - Android Save Game does not work - Target SDK 30

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.

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.
    1. Um eine Game Instance zu erstellen, geh in den Content Browser und mache einen Rechtsklick, klicke nun auf ‚Blueprint Class‘.
    2. Klicke unten auf ‚All Classes‘ und suche dort nach ‚Game Instance‘.
    3. 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:
    1. android.permission.WRITE_EXTERNAL_STORAGE
    2. 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

Android Target SDK 30 - Project Settings

Als nächstes müssen wir die Project Settings noch umändern. So stellen wir sicher, dass auch wirklich alles wie gewünscht funktioniert. Hier gilt, lieber etwas doppelt machen, als nachher wieder eine Fehlermeldung haben.

  • Öffne deine Unreal Engine Project Settings.
  • Wähle den Punkt (links) ‚Android‘ aus um in das Android Platform Settings zu kommen.
  • Ä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.
UE4.27 Android Platform Settings Part 1
Android Platform Settings (1)
  • 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.
UE4.27 Android Platform Settings Part 2
Advanced APK Packaging (2)

Android Save Game erstellen

Das Save Game kann man jetzt wie gewohnt erstellen – nur halt in der ‚Game Instance‘. Erstelle dafür eine Save Game Blueprint Datei und füge diese in die Game Instance hinzu. Als Beispiel dafür kannst du dir unten das Bild anschauen (einfach bei Event Init hinzufügen) :

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).

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen

Schön das du Interesse an dieser Anwendung hast.
Wähle unten die gewünschte Version aus.

Texture Channel Packer ist ein kostenloses Tool mit dem du verschiedene Texturen zu einer RGB Textur packen kannst.

Portable Edition – v1.0 | Größe: 10,7 mb

Thank you for your interest in this application.
Select the version you want below.

Texture Channel Packer is a tool that allows you to pack different textures into one RGB texture.

Portable Edition – v1.0 | Size: 10,7 mb

















WELL, WORK IN PROCESS | Check out the German Page, there it is working.