2012-06-01 11 views
6

के साथ मोनोड्रॉइड प्रोजेक्ट का निर्माण करता हूं तो एन्कोडिंग विफल हो जाता है मैं अपने मोनोड्रॉइड ऐप में डॉटनेटजीप लाइब्रेरी का उपयोग करने की कोशिश कर रहा हूं। जब मैं साझा रनटाइम बिल्ड विकल्प सक्षम करता हूं तो सबकुछ ठीक काम करता प्रतीत होता है। जब मैं साझा रनटाइम, लाइनजब मैं बिना किसी रनटाइम

static System.Text.Encoding ibm437 = System.Text.Encoding.GetEncoding("IBM437"); 

एक अपवाद उत्पन्न करता है को निष्क्रिय (एन्कोडिंग नाम 'IBM437' समर्थित नहीं)। मैंने "अतिरिक्त समर्थित एन्कोडिंग" सूची में प्रत्येक बॉक्स को चेक किया है, लेकिन यह मदद नहीं करता है। क्या किसी के भी पास कोई सुझाव है?

+0

क्या आप bugzilla.xamarin.com पर एक बग फाइल कर सकते हैं और टेस्टकेस संलग्न कर सकते हैं? हमारे पास एक नमूना है जो सीपी 1252 का उपयोग करता है और काम करता है: https://github.com/xamarin/monodroid-samples/blob/master/SanityTests/Hello.cs#L332 https://github.com/xamarin/monodroid-samples/blob /master/SanityTests/SanityTests.csproj#L110 – jonp

उत्तर

11

मुझे एक ही समस्या थी।

सबसे पहले, सुनिश्चित करें कि आप परियोजना संपत्तियों में "पश्चिम" एन्कोडिंग में शामिल किया है: कि चाल करना नहीं है, तो

Xamarin Internationalization

, समस्या यह है कि जरूरत DLLs नहीं हैं .apk के असेंबली फ़ोल्डर में कॉपी हो रही है। यह स्वचालित रूप से होना चाहिए, लेकिन यह नहीं है। मैं एक बग दायर, तो आप देख सकते हैं अगर यह निर्धारित किया गया है:

  1. मैन्युअल I18N के संदर्भ में जोड़ें:

    Mono for Android/Xamarin Bugzilla

    यदि नहीं, तो यहाँ एक समाधान है कि (Xamarin से) मेरे लिए काम किया है .dll और I18N.West.dll

  2. दोनों DLLs
  3. निम्नलिखित डमी कोड जोड़ें के लिए 'सही' के लिए 'कॉपी स्थानीय' प्रॉपर्टी सेट 2 DLLs .apk को जोड़ा गया पाने के लिए

    var ignore = new I18N.West.CP437();

  4. सुनिश्चित करें कि 'लिंकिंग' 'कोई नहीं'

आशा इस में मदद करता है के लिए सेट है!

+0

बस आपके समाधान का प्रयास किया और यह पुष्टि कर सकता है कि यह काम करता है। पोस्ट करने का शुक्रिया। (मेरा कामकाज यूटीएफ -8 के साथ हर आईबीएम 437 संदर्भ को बदल रहा था।) – Ash

संबंधित मुद्दे