トラブルシューティング
AndroidおよびiOSのクラッシュ
AndroidやiOSでは、ランタイム中(TestFlightテスト時など)にクラッシュが発生する場合があります。これは、基盤となるllama.cppライブラリのメモリ割り当て要件が、これらのプラットフォームにおけるUnreal Engineのデフォルトアロケーターと競合することが原因です。他のプラットフォームではFMallocはデフォルトでANSIアロケーターを使用するため、この問題はAndroidとiOSに固有のものです。
これを解決するには、プロジェクトの Target.cs ファイルで ANSI アロケーターを強制する必要があります。
Unreal Engine 5.5以前の場合:
- あなたのプロジェクトはソースからビルドされたエンジンを使用する必要があります(プリコンパイルされたバイナリではありません)
Target.csファイルに以下の行を追加してください:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Unreal Engine 5.6以降の場合:
- ソースビルドおよびプリコンパイル済みのエンジンビルドの両方で動作します
Target.csファイルに以下の2行を追加してください:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
これにより、Unreal EngineはAndroidおよびiOS上でANSIアロケーターを使用するよう強制され、llama.cppで使用されるアロケーターと一致します。