Resolución de problemas
Fallos en Android y iOS
En algunos casos en Android y iOS, pueden producirse fallos durante el tiempo de ejecución (por ejemplo, durante las pruebas de TestFlight). Esto se debe a que los requisitos de asignación de memoria de la biblioteca llama.cpp subyacente entran en conflicto con los asignadores predeterminados de Unreal Engine en estas plataformas. En otras plataformas, FMalloc utiliza de forma predeterminada el asignador ANSI, por lo que este problema es específico de Android y iOS.
Para solucionarlo, es necesario forzar el asignador ANSI en el archivo Target.cs de tu proyecto:
Para Unreal Engine 5.5 y versiones anteriores:
- Tu proyecto debe utilizar un motor compilado desde el código fuente (no un binario precompilado)
- Agrega la siguiente línea a tu archivo
Target.cs:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Para Unreal Engine 5.6 y posteriores:
- Funciona con compilaciones del motor tanto creadas a partir del código fuente como precompiladas
- Añade las siguientes dos líneas a tu archivo
Target.cs:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
Esto obliga a Unreal Engine a utilizar el asignador ANSI en Android e iOS, coincidiendo con el asignador utilizado por llama.cpp.