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.