Rozwiązywanie problemów
Awarie na Androidzie i iOS
W niektórych przypadkach na Androidzie i iOS mogą wystąpić awarie w trakcie działania (na przykład podczas testów TestFlight). Jest to spowodowane konfliktem wymagań pamięciowych biblioteki llama.cpp z domyślnymi alokatorami Unreal Engine na tych platformach. Na innych platformach FMalloc domyślnie używa alokatora ANSI, więc ten problem dotyczy wyłącznie Androida i iOS.
Aby to rozwiązać, musisz wymusić alokator ANSI w pliku Target.cs swojego projektu:
Dla Unreal Engine 5.5 i wcześniejszych:
- Twój projekt musi używać silnika zbudowanego ze źródeł (nie gotowej skompilowanej binarki)
- Dodaj poniższą linię do pliku
Target.cs:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Dla Unreal Engine 5.6 i nowszych:
- Działa zarówno z kompilacjami źródłowymi, jak i prekompilowanymi silnika
- Dodaj następujące dwie linie do pliku
Target.cs:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
To zmusza Unreal Engine do używania alokatora ANSI na Androidzie i iOS, zgodnego z alokatorem używanym przez llama.cpp.