Aller au contenu principal

Dépannage

Plantages Android et iOS

Dans certains cas sur Android et iOS, des plantages peuvent survenir pendant l'exécution (comme lors des tests TestFlight). Cela est dû au fait que les exigences d'allocation mémoire de la bibliothèque sous-jacente llama.cpp entrent en conflit avec les allocateurs par défaut d'Unreal Engine sur ces plateformes. Sur d'autres plateformes, FMalloc utilise par défaut l'allocateur ANSI, ce problème est donc spécifique à Android et iOS.

Pour résoudre ce problème, vous devez forcer l'allocateur ANSI dans le fichier Target.cs de votre projet :

Pour Unreal Engine 5.5 et versions antérieures :

  • Votre projet doit utiliser un moteur compilé à partir des sources (pas un binaire précompilé)
  • Ajoutez la ligne suivante à votre fichier Target.cs :
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");

Pour Unreal Engine 5.6 et versions ultérieures:

  • Fonctionne à la fois avec les builds du moteur compilés à partir des sources et les builds pré-compilés
  • Ajoutez les deux lignes suivantes à votre fichier Target.cs :
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;

Cela force Unreal Engine à utiliser l'allocateur ANSI sur Android et iOS, correspondant à l'allocateur utilisé par llama.cpp.