Khắc phục sự cố
Sự cố treo trên Android và iOS
Trong một số trường hợp trên Android và iOS, có thể xảy ra treo trong thời gian chạy (ví dụ như trong quá trình kiểm thử TestFlight). Điều này là do yêu cầu cấp phát bộ nhớ của thư viện llama.cpp cơ bản xung đột với bộ cấp phát mặc định của Unreal Engine trên các nền tảng này. Trên các nền tảng khác, FMalloc mặc định sử dụng bộ cấp phát ANSI, vì vậy vấn đề này chỉ xảy ra cụ thể trên Android và iOS.
Để giải quyết vấn đề này, bạn cần buộc sử dụng bộ cấp phát ANSI trong tệp Target.cs của dự án:
Đối với Unreal Engine 5.5 trở về trước:
- Dự án của bạn phải sử dụng engine được xây dựng từ mã nguồn (không phải binary được biên dịch sẵn)
- Thêm dòng sau vào tệp
Target.cscủa bạn:
GlobalDefinitions.Add("FORCE_ANSI_ALLOCATOR=1");
Dành cho Unreal Engine 5.6 trở lên:
- Hoạt động với cả bản dựng từ mã nguồn và bản dựng đã biên dịch sẵn
- Thêm hai dòng sau vào tệp
Target.cscủa bạn:
bOverrideBuildEnvironment = true;
StaticAllocator = StaticAllocatorType.Ansi;
Điều này buộc Unreal Engine sử dụng bộ cấp phát ANSI trên Android và iOS, khớp với bộ cấp phát được sử dụng bởi llama.cpp.