Solução de problemas
Falhas no Android e iOS
Em alguns casos no Android e iOS, podem ocorrer falhas durante a execução (como durante testes do TestFlight). Isso é causado pelos requisitos de alocação de memória da biblioteca llama.cpp subjacente, que conflitam com os alocadores padrão do Unreal Engine nessas plataformas. Em outras plataformas, o FMalloc usa o alocador ANSI como padrão, portanto esse problema é específico do Android e iOS.
Para resolver isso, é necessário forçar o alocador ANSI no arquivo Target.cs do seu projeto:
Para o Unreal Engine 5.5 e versões anteriores:
- Seu projeto deve usar uma engine compilada a partir do código-fonte (não um binário pré-compilado)
- Adicione a seguinte linha ao seu arquivo
Target.cs:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Para Unreal Engine 5.6 e posteriores:
- Funciona com compilações da engine criadas a partir do código-fonte e pré-compiladas
- Adicione as duas linhas a seguir ao seu arquivo
Target.cs:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
Isso força o Unreal Engine a usar o alocador ANSI no Android e iOS, correspondendo ao alocador usado pelo llama.cpp.