跳至主要内容

疑難排解

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 檔案中新增以下兩行:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;

這會強制 Unreal Engine 在 Android 和 iOS 上使用 ANSI 分配器,以匹配 llama.cpp 所使用的分配器。