Aller au contenu principal

Dépannage

Crashes sur Android et iOS

Dans certains cas sur Android et iOS, des plantages peuvent survenir pendant l'exécution (par exemple lors des tests TestFlight). Cela est dû aux exigences d'allocation mémoire de la bibliothèque sous-jacente llama.cpp qui 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, donc ce problème est 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 avec les builds de moteur compilés à partir des sources et 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.