2014-05-16 10 views
5

मैं एक एंड्रॉइड ऐप पर Google Analytics v4 API का उपयोग कर रहा हूं जो प्रोगार्ड के साथ बनाया गया था। परिणामस्वरूप क्रैश रिपोर्ट गुप्त हैं। उदाहरण के लिए, 'NullPointerException (@a: t: -1) {main}'Analytics v4 uncaught अपवाद और proguard

1) क्या मुझे अनुमान के बिना प्रदान की गई जानकारी के साथ इस क्रैश का सटीक स्थान मिल सकता है?

2) मैं क्रैश रिपोर्ट की पठनीयता में सुधार कैसे कर सकता हूं? documentation दिखाता है कि एक कस्टम अपवाद संवाददाता कैसे सेट करें और यह समझ में आता है। हालांकि, यह

कभी भी Google Analytics में अपवाद संदेश (e.getMessage()) न भेजें क्योंकि इसमें व्यक्तिगत पहचान योग्य जानकारी हो सकती है।

तो अगर संदेश नहीं है, तो अपवाद के कौन से क्षेत्र मैं क्रैश रिपोर्ट उत्पन्न करने के लिए उपयोग कर सकता हूं जो मुझे किसी ऐप पर क्रैश की स्थिति को प्रोजेवार्ड के साथ ढूंढने देता है?

उत्तर

1

समाधान रूट कारण के पैकेज नाम की रिपोर्ट करने के लिए StandardExceptionParser को ओवरराइड करना है। अधिक विस्तृत विवरण के लिए my blog post देखें।

+0

दिया गया यूआरएल अब और काम नहीं कर रहा है, इसलिए यहां कुछ कोड स्निपेट प्रदान करना अच्छा अभ्यास है। – Chitrang

+2

"मेरे ब्लॉग पोस्ट देखें", सिवाय इसके कि यह अब नीचे है। एक बहुत ही उपयोगी जवाब। -1 मुझसे – Malcolm

+1

@Malcolm आपका ब्लॉग अभी भी नीचे है। कृपया अपना समाधान यहां कॉपी करें। –

1

कुछ बातें:

  1. Proguard ranames है कि यह हर संकलन आप करते हैं कि के लिए किया था के एक नक्शे उत्पन्न करता है। यदि आपके पास उन फ़ाइलों को कहीं सेव किया गया है, तो आप स्वयं को ढेर कर सकते हैं।
  2. यदि आप स्थानीय मशीन पर एप्लिकेशन को डिबग कर रहे हैं, तो प्रोजेवार्ड को अक्षम करने का प्रयास करें।
  3. मुझे लगता है कि यहां प्राथमिक चिंता यह है कि व्यक्तिगत रूप से पहचान योग्य जानकारी Google को नहीं भेजी जानी चाहिए। यदि आप किसी भी तरह से स्टैक ट्रेस के शीर्ष 2 या 3 वर्गों को पार्स कर सकते हैं, तो चीजें काम नहीं करेंगे?

अधिक विस्तृत प्रश्न पूछने के लिए स्वतंत्र महसूस करें और मैं सहायता करने की कोशिश करूंगा।

+1

आपके उत्तर के लिए धन्यवाद। इसके बारे में 1., इसे थोड़ा और अधिक देखकर, प्रोगार्ड mapping.txt फ़ाइल उत्पन्न करता है, लेकिन उदाहरण के लिए, '@ ए: टी: -1', आपको सही मैपिंग खोजने के लिए पर्याप्त जानकारी नहीं देता है क्योंकि इसमें पैकेज नाम की कमी है 'ए' का। 'ए' नामक कई वर्ग होंगे। यही कारण है कि अपवाद प्रारूप बदलना महत्वपूर्ण है। 2 के लिए, क्रैश रिपोर्ट जो मैं संदर्भित कर रहा हूं, Google Analytics द्वारा उत्पन्न किया गया है, इसलिए यह Play store में रिलीज़ बिल्ड का हिस्सा है। और मैं 3. –

+0

से सहमत हूं हाय, क्या आप कृपया बता सकते हैं कि क्यों Google ने यह व्यक्तिगत रूप से पहचान योग्य जानकारी Google' को नहीं भेजी जानी चाहिए ?? चूंकि जीए केवल ऐप के मालिक द्वारा देखा जा सकता है, तो यह वास्तव में किस जानकारी का जिक्र कर रहा है? –

5

@aleph_null के अलावा, आपको अपनी लाइन नंबर रखने के लिए इन दो लाइनों को अपनी प्रोजेवार्ड कॉन्फ़िगरेशन फ़ाइल में जोड़ना चाहिए, अन्यथा आप हमेशा अपवाद संदेश में -1 देखेंगे।

-renamesourcefileattribute SourceFile 
-keepattributes SourceFile,LineNumberTable 
संबंधित मुद्दे