본문으로 건너뛰기

트러블슈팅

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에서 사용하는 할당자와 일치시킵니다.