Passa al contenuto principale

Risoluzione dei problemi

Arresti anomali su Android e iOS

In alcuni casi su Android e iOS, possono verificarsi arresti anomali durante l'esecuzione (ad esempio durante i test con TestFlight). Ciò è dovuto al fatto che i requisiti di allocazione della memoria della libreria sottostante llama.cpp entrano in conflitto con gli allocatori predefiniti di Unreal Engine su queste piattaforme. Su altre piattaforme, FMalloc utilizza di default l'allocatore ANSI, quindi questo problema è specifico di Android e iOS.

Per risolvere questo problema, è necessario forzare l'allocatore ANSI nel file Target.cs del progetto:

Per Unreal Engine 5.5 e precedenti:

  • Il progetto deve utilizzare un engine compilato dai sorgenti (non un binario precompilato)
  • Aggiungi la seguente riga al file Target.cs:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");

Per Unreal Engine 5.6 e versioni successive:

  • Funziona con build del motore sia compilate da sorgente che pre-compilate
  • Aggiungi le due righe seguenti al tuo file Target.cs:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;

Questo forza Unreal Engine a utilizzare l'allocatore ANSI su Android e iOS, corrispondente all'allocatore usato da llama.cpp.