Устранение неполадок
Сбои на Android и iOS
В некоторых случаях на Android и iOS могут возникать сбои во время выполнения (например, при тестировании через TestFlight). Это вызвано конфликтом требований к выделению памяти библиотеки llama.cpp с распределителями памяти по умолчанию в Unreal Engine на этих платформах. На других платформах FMalloc по умолчанию использует распределитель ANSI, поэтому данная проблема характерна только для Android и iOS.
Чтобы решить эту проблему, необходимо принудительно задать ANSI-аллокатор в файле Target.cs вашего проекта:
Для Unreal Engine 5.5 и более ранних версий:
- Ваш проект должен использовать движок, собранный из исходного кода (не предварительно скомпилированный бинарный файл)
- Добавьте следующую строку в ваш файл
Target.cs:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Для Unreal Engine 5.6 и более поздних версий:
- Работает как с собранными из исходников, так и с предварительно скомпилированными сборками движка
- Добавьте следующие две строки в ваш файл
Target.cs:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
Это заставляет Unreal Engine использовать ANSI-аллокатор на Android и iOS, что соответствует аллокатору, используемому llama.cpp.