2015-06-30 11 views
10

मैंने हाल ही में देखा है कि जब कोई अपवाद अपवाद होता है तो मेरा ऐप क्रैश नहीं होता है, लेकिन यह प्रतिक्रिया नहीं दे रहा है। मैं दुर्घटनाओं की अंतर्दृष्टि प्राप्त करने के लिए Google Analytics का उपयोग करता हूं, मुझे संदेह है कि यह समस्या का कारण हो सकता है।एंड्रॉइड ऐप क्रैश नहीं होता है, लेकिन बेजोड़ अपवादों पर प्रतिक्रिया नहीं दे रहा है

जब मैं onCreate() (तुरंत super.onCreate() के बाद) फेंक देता हूं, तो ऐप एक सफेद स्क्रीन दिखाता है, लेकिन यह क्रैश नहीं होता है।

Logcat का कहना है:

06-30 14:00:59.386 26259-26259/? I/GAv4﹕ Google Analytics 7.5.71 is starting up. To enable debug logging on a device run: 
    adb shell setprop log.tag.GAv4 DEBUG 
    adb logcat -s GAv4 
06-30 14:00:59.398 26259-26259/? W/GAv4﹕ AnalyticsReceiver is not registered or is disabled. Register the receiver for reliable dispatching on non-Google Play devices. See http://goo.gl/8Rd3yj for instructions. 
06-30 14:00:59.409 26259-26259/? W/GAv4﹕ CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http://goo.gl/8Rd3yj for instructions. 
06-30 14:00:59.414 26259-26295/? W/GAv4﹕ AnalyticsService not registered in the app manifest. Hits might not be delivered reliably. See http://goo.gl/8Rd3yj for instructions. 
06-30 14:00:59.467 26259-26259/? D/AndroidRuntime﹕ Shutting down VM 

मैं ध्यान में न आया अपवादों को देखने के लिए है, क्योंकि यह उन्हें ठीक करने के बहुत मुश्किल है अगर मैं स्टैकट्रेस और समस्या का कारण नहीं दिख रहा है करना चाहते हैं।

पिछले व्यवहार को वापस पाने के लिए मैं क्या कर सकता हूं?

संपादित करें: Analytics त्रुटि रिपोर्टिंग को हटाने के बाद (tracker.enableExceptionReporting(true); पर कॉल नहीं करने के बाद), मुझे फिर से क्रैश मिलते हैं। मैं Play Services 7.5.0 से Analytics का उपयोग करता हूं।

+1

असल में आपके पास केवल चेतावनियां हैं ... यह आवश्यक नहीं है कि आपके ऐप ने कोई अपवाद लॉन्च किया .... आप किस त्रुटि के लिए खोज कर रहे हैं? –

+0

मैंने मुख्य गतिविधि के 'ऑनक्रेट()' में एक NullPointerException फेंक दिया, और मैं इसके स्टैक ट्रेस प्राप्त करना चाहता हूं। मेरी समस्या यह है कि मुझे लॉगकैट में कोई त्रुटि नहीं है। – hunyadym

+1

अरग। मुझे थोड़ा राहत मिलती है कि मैं उस 'एंड्रॉइड रनटाइम: वीएम' संदेश को बंद करना और कोई अन्य लॉग नहीं देख रहा हूं। –

उत्तर

-1

Exceptions डिफ़ॉल्ट रूप से कंसोल में दिखाए जाते हैं।

आप (मुझे लगता है कि क्योंकि Logcat कभी कभी एक बड़ी गड़बड़ है इस उद्देश्य के लिए अधिक उपयोगी है) कंसोल जाँच करने के लिए नहीं करना चाहते हैं, तो बस Log में Exception रों जब catched दिखा।

try { 

} catch (Exception e) { 
    Log.e("YOUR_APP_TAG", "Exception occured: ", e); 
} 
+0

मैं इस कंसोल को कहां एक्सेस कर सकता हूं? (मैं एंड्रॉइड स्टूडियो का उपयोग कर रहा हूं।) इसके अलावा, Play Store में, मुझे कोई क्रैश रिपोर्ट नहीं मिलती है, केवल एएनआर रिपोर्ट, जिसमें स्टैकट्रैक नहीं होता है। मैं अपने सभी कोड को कोशिश-पकड़ के साथ लपेटना नहीं चाहता हूं। – hunyadym

+0

AFAIK आपके पास अपवादों को मैन्युअल रूप से पुनर्निर्देशित करने के अलावा कोई अन्य विकल्प नहीं है ... ** आप अभी भी कंसोल पर नजर डाल सकते हैं !!! ** लेकिन आपको लाखों 'प्रयास-कैच' का उपयोग करने की आवश्यकता नहीं है यदि आप सभी 'अपवाद' को नियंत्रित करते हैं जो सामान्य 'अपवाद' कैचर/हैंडलर में हो सकता है ... –

1

Google Analytics अपराधी है। जब आप रिलीज कुंजी के साथ अपने ऐप पर हस्ताक्षर करते हैं तो इसे अक्षम और सक्षम करते समय अक्षम करें (या बेकार अपवादों की स्वचालित रिपोर्टिंग को अक्षम करें) को अक्षम करने का प्रयास करें।

+0

मेरे लिए ऐप ने न तो क्रैश नहीं किया और न ही रिलीज कुंजी के साथ हस्ताक्षर किए। (जैसा कि मैंने इस सवाल में उल्लेख किया है, मैं Analytics अपवाद रिपोर्टिंग को अक्षम करने के साथ समाप्त हुआ।) – hunyadym

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

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