मुख्य कंटेंट तक स्किप करें

समस्या निवारण

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 allocator का उपयोग करने के लिए मजबूर करता है, जो llama.cpp द्वारा उपयोग किए जाने वाले एलोकेटर से मेल खाता है।