2012-03-29 14 views
11

मैं "ऑनक्रेट()" को ओवरराइड करने के लिए "Android.App.Aplication" का एक बाल वर्ग बनाने की कोशिश कर रहा हूं, लेकिन मैं इसे काम नहीं कर सकता। यहाँ मेरी कोड है:Android के लिए मोनो में कस्टम एप्लिकेशन बाल कक्षा

namespace MonoAndroidAcra { 
    [Application(Debuggable=true, 
       Label="insert label here", 
       ManageSpaceActivity = typeof(MainActivity))] 
    class AcraApp : Application { 
    public override void OnCreate() { 
     base.OnCreate(); 
    } 
    } 
} 

MainActivity बस डिफ़ॉल्ट उदाहरण गतिविधि है।

अब, जब मैं परियोजना डिबग मैं एक System.NotSupportedException:

देशी संभाल 405191a0

कोई कॉल स्टैक इस अपवाद के लिए उपलब्ध है से प्रकार MonoAndroidAcra.AcraApp के कहने सक्रिय करने में असमर्थ।

मैं इसे सही तरीके से कैसे कर सकता हूं? मुझे इसके लिए कोई उदाहरण नहीं मिला।

मैं एंड्रॉइड के लिए मोनो के नवीनतम स्थिर संस्करण का उपयोग कर रहा हूं।

उत्तर

27

आप बनाने के लिए के लिए अपनी कक्षा को यह निर्माता जोड़ने की जरूरत है यह काम:

public AcraApp (IntPtr javaReference, JniHandleOwnership transfer) 
    : base(javaReference, transfer) 
{ 
} 
+0

धन्यवाद एक ढेर। मैं क्या गलत कर रहा था की तलाश में था! –

1

यह एक "टपकाया अमूर्त", explained by a Xamarin Team member, कि नवीनतम Xamarin Android संस्करण 4.12.2 में निर्धारित किया गया है था , जिसमें इस अनुपस्थित कन्स्ट्रक्टर को जोड़ने के लिए अब और आवश्यकता नहीं है। एंड्रॉइड एसडीके 22.6 को इस ज़ैमरिन संस्करण के साथ ठीक से काम करने की भी आवश्यकता है। हालांकि एसडीके को अपडेट करने से केवल इस समस्या को ठीक नहीं किया जाएगा, यह वास्तव में Xamarin से संबंधित है।

पुराने संस्करण का उपयोग करने वाले किसी भी व्यक्ति के लिए, Greg's solution अभी भी उपयोग किया जाना चाहिए।

+0

ऐसा लगता है कि [@ ग्रेगशैकल्स उत्तर] (http://stackoverflow.com/a/9963637/121968) 6.1.0.71 के लिए भी आवश्यक है। –

+0

@ टीएन। इसे इंगित करने के लिए धन्यवाद जानना अच्छा लगता है, मुझे आश्चर्य है कि यह एक रिग्रेशन मुद्दा है जो अभी वापस आया है। मैं अब लगभग 2 वर्षों तक ज़ैमरिन का उपयोग नहीं कर रहा हूं। – ForceMagic

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