2012-05-30 18 views
12

ऐसा लगता है Android 2.2 के रूप में, वहाँ क्रैश रिपोर्ट भेजकर के लिए एक नई सुविधा है कि, के रूप में लिंक में वर्णित:एंड्रॉइड - क्रैश रिपोर्ट कैसे भेजें?

मैं इस सुविधा का उपयोग कैसे करूं? क्या यह बाजार से डाउनलोड किए गए प्रत्येक एप्लिकेशन के लिए स्वचालित है (उर्फ Google Play Store)? मुझे इस सुविधा के बारे में और जानकारी कहां मिल सकती है?

साथ ही, क्या डिलीवरीएक्सप्शन हैंडलर का उपयोग करके, शायद क्रैश का अपना विवरण डालकर इसे अनुकूलित करना संभव है?

नोट: मुझे पता है वहाँ क्रैश रिपोर्ट (जैसे ACRA) भेजने के लिए उपकरणों के बहुत सारे हैं, लेकिन मैं पहले जाँच करने के लिए अगर यह उपयोग करने के लिए क्या पहले से ही दिया है संभव है कि इच्छा।

संपादित करें: मैं, अपवाद है कि आगे पारित हो जाता है संशोधित उम्मीद है कि यह भी रिपोर्ट Google के डेवलपर वेबसाइट को भेजी जाने वाली बदल जाएगा सफल रहा है।

यहाँ एक नमूना कोड है कि इस के लिए प्रासंगिक है:

private static class DefaultExceptionHandler implements java.lang.Thread.UncaughtExceptionHandler 
... 
@Override 
public void uncaughtException(Thread t, Throwable e) 
{ 
    final StackTraceElement[] exceptionStackTrace = e.getStackTrace(); 
    Exception exception = new Exception("my new exception!", e); 
    final StackTraceElement[] newExceptionStackTrace = new StackTraceElement[exceptionStackTrace.length + 1]; 
    System.arraycopy(exceptionStackTrace, 0, newExceptionStackTrace, 1, exceptionStackTrace.length); 
    newExceptionStackTrace[0] = new StackTraceElement("TEST CLASS", "TEST METHOD", "TEST FILE", 0); 
    exception.setStackTrace(newExceptionStackTrace); 
_defaultUEH.uncaughtException(t, exception); //this will hopefully call the default handling of the exception for reporting 
} 
+0

आपको अपने मार्केट कंसोल में स्वचालित रूप से त्रुटि रिपोर्ट प्राप्त होगी। –

उत्तर

5

क्या आप सुविधा में निर्माण की तरह लगता है का वर्णन किया है, और जहाँ तक मुझे पता है, तो आप इस अनुकूलित नहीं कर सकते। डेटा googlePlay dev खाते को भेजा जाएगा जिसने ऐप अपलोड किया था। मैंने सेंस, या कस्टम रोम द्वारा किए गए अनुकूलन देखा है। अपने स्वयं के लॉग प्राप्त करने का एकमात्र तरीका, आपके द्वारा उल्लिखित DefaultErrorHandler का उपयोग करना है। एक अच्छी प्रैक्टिस के रूप में मैं जांच करूंगा, अगर आप स्वयं को त्रुटि पकड़ सकते हैं, (शायद इसे कहीं लॉग करें)। यदि नहीं, तो मैं आपको इस त्रुटि को दोबारा शुरू कर दूंगा, जिससे उपयोगकर्ता आपको संकेत देने का मौका दे सके, उसने क्या किया है

+0

हां, मुझे संदेह है कि यह बनाया गया है और इसमें कोई एपीआई नहीं है। हालांकि, रिपोर्ट में अपनी खुद की अधिक जानकारी जोड़ने के लिए DefaultExceptionHandler का उपयोग करना संभव है? यदि हां, तो कैसे ? मुझे पता है कि मैं अपवादों को पकड़ने में सफल रहा हूं, लेकिन क्रैश रिपोर्ट की अंतर्निहित सुविधा के लिए और जानकारी प्राप्त करने के लिए मुझे क्या करना चाहिए? –

+0

आप निर्मित क्रैश रिपोर्ट के अंदर कोई अतिरिक्त जानकारी पास नहीं कर सकते हैं। आप अपनी OWN रिपोर्ट भेजने के लिए केवल DefaultExHandler का उपयोग कर सकते हैं, जिस तरह से आपको –

+2

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

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