2014-09-05 11 views
10

डिबग नहीं करते हैं तो मैं विंडोज फोन 8.1 एप्लिकेशन पर काम कर रहा हूं। मैं इस परियोजना में लगभग एक महीने का हूं और अब तक जो कुछ लिखा है उसके साथ कोई समस्या नहीं है।विंडोज फोन 8.1 ऐप क्रैश जब Async Await

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

मैं पूरे एसिंक विधियों का उपयोग कर रहा हूं (कुछ async शून्य, अन्य async कार्य), लेकिन यह सब डिबगिंग करते समय काम करता है।

मुख्य बात जो मदद करेगी, किसी प्रकार का त्रुटि संदेश प्राप्त करना है। मुझे कोड के अनुभागों पर टिप्पणी करने के लिए कम कर दिया गया है, लेकिन आखिरकार यह मुझे कहीं भी नहीं ले रहा है क्योंकि ऐसा लगता है जब मुझे लगता है कि मुझे समस्या मिली है, मुझे कोड में एक और दुर्घटना और नीचे मिल गया है।

एक बिंदु पर, मुझे कॉल करने के साथ एक समस्या मिली: ListView.UpdateLayout()। मैंने इस पर टिप्पणी की और ऐप ठीक से कोई दुर्घटना नहीं चलाएगा। मैंने फिर कुछ कोड को और टिप्पणी नहीं की और अब यह फिर से दुर्घटनाग्रस्त हो रहा है।

अगर कोई फ़ोन से अपवाद प्राप्त करने के तरीके के बारे में जानता है या किसी ने पहले इस मुद्दे का अनुभव किया है, तो किसी भी मदद की सराहना की जाएगी। मैं आवश्यक जानकारी प्रदान कर सकता हूं।

अद्यतन: मुझे लगता है कि मैंने इस मुद्दे को Sqlite.NET तक सीमित कर दिया है। मैं WinRT के लिए Sqlite.NetExtensions नामक एक्सटेंशन के साथ Sqlite.Net का उपयोग कर रहा हूं। विशेष विवरण

DataContext.Context.Connection.Table<Message>().Where(m => m.ChannelID == channelID && m.ChannelID.Contains("C")).ToList(); 

यदि मैं इसे टिप्पणी करता हूं, तो ऐप को कोई समस्या नहीं होती है। अधिकतर रिटर्न पर यह LINQ कथन 100 रिकॉर्ड देता है। मुझे नहीं लगता कि एक 100 रिकॉर्ड चयन कथन ऐप को क्रैश कर सकता है, लेकिन यह अपराधी की तरह लगता है। Sqlite.NET को अनुकूलित करने के तरीके पर कोई विचार?

अद्यतन 2: अंततः इसे समझ लिया! यह बिल्कुल SQLite नहीं था। यह मेरा कोड बिल्कुल नहीं था। यह मेरा फोन था। मैं नोकिया लुमिया आइकन चला रहा हूं। मैंने कुछ हफ्ते पहले रूडी ह्यून की लॉकस्क्रीन बीटा स्थापित की थी। जब मैंने इसे अनइंस्टॉल किया तो यह कुछ मुद्दों का कारण बन गया लेकिन यह मेरे आवेदन से संबंधित नहीं था। आज, मेरे व्यापार भागीदार ने अपने ऐप को अपने फोन पर इंस्टॉल किया था, उसके पास एक ही मॉडल फोन है। ऐप लगभग 50x तेज था और क्रैश नहीं हुआ था। मैंने कारखाने से अपने फोन को बहाल किया और देखो, यह पूरी तरह से भाग गया। तो, प्रो टिप: रूडी ह्यूएन द्वारा लॉकस्क्रीन बीटा स्थापित न करें !!!

+0

आप के तहत ईवेंट व्यूअर में लॉग कोशिश कर सकते हैं नहीं है * अनुप्रयोग और सेवाएँ ** माइक्रोसॉफ्ट विंडोज ** ** Appx \ **। –

+0

@JeroenVannevel धन्यवाद, लेकिन यह मुझे ज्यादा नहीं दे रहा है। मुझे वास्तव में फोन पर त्रुटि/घटना लॉग देखने का एक तरीका है। क्या उस जानकारी को पाने का कोई तरीका है? –

+0

कोशिश की पूरी सामग्री को एक कोशिश में रखें, और एक संदेश में अपवाद पकड़ो? –

उत्तर

1

एक तरफ, मैं यह सुनिश्चित करने के लिए समय लेता हूं कि आप हमेशा एसिंक शून्य का उपयोग करने से बचें। यह अच्छी तरह से प्रलेखित है कि एसिंक शून्य अक्सर परेशानी के लिए एक नुस्खा है।

नुकसान पर एक अच्छा लेख से पता चला here

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