Khắc phục sự cố
Sự cố trên Android và iOS
Trong một số trường hợp trên Android và iOS, có thể xảy ra lỗi crash trong thời gian chạy (ví dụ như khi kiểm thử qua TestFlight). Nguyên nhân là do yêu cầu cấp phát bộ nhớ của thư viện llama.cpp bên dưới 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 riêng trên Android và iOS.
Để giải quyết vấn đề này, bạn cần ép bộ cấp phát ANSI trong tệp Target.cs của dự án:
Dành cho Unreal Engine 5.5 trở về trước:
- Dự án của bạn phải sử dụng engine được build từ mã nguồn (không phải bản nhị phân đã 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 engine từ mã nguồn và bản dựng được 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.