में क्लास और विधि नाम दिखा रहा है मेरे पास प्रोगार्ड सक्षम (minifyenabled true) के साथ एक ऐप है और हाल ही में Google Play Dev Console में एक क्रैश रिपोर्ट मिली है। जब मैं इसे देखा है, मैं देखा निम्नलिखित:Google Play Dev Console Stacktrace
मैं पंक्ति 1 में पूर्ण वर्ग और विधि के नाम देख कर हैरान था, के रूप में Proguard सक्षम है।
com.myname.myapp.cf पर (अज्ञात स्रोत)
मैं भी उत्सुक कैसे लाइन नंबर के रूप में मैं नहीं कर रहा हूँ दिखाई दे रहा है कर रहा हूँ: मैं हमेशा पूर्व में इस तरह बातें देखा है मेरे प्रोगार्ड कॉन्फ़िगरेशन फ़ाइल में लाइन नंबरों को संरक्षित करना (इसलिए, मैं आमतौर पर अपने स्टैकट्रैस में 'अज्ञात स्रोत' क्यों देखता हूं)।
मैंने कक्षाओं .ex फ़ाइल पर peeked मेरे .apk decompiled और यह सब ठीक लग रहा था। मैं स्टैकट्रस के लाइन 1 में संदर्भित कक्षा में स्थित हूं और क्लास नाम वास्तव में विधि नाम के रूप में obfuscated था।
अब, 'माईएक्टिविटी' (स्टैकट्रैक की लाइन 2) लॉन्च है मेरे ऐप की गतिविधि, और जैसा कि मैनिफेस्ट में घोषित किया गया है, इसलिए मैं समझता हूं कि इसका नाम क्यों खराब नहीं हुआ है, और 'ऑनकनेक्टेड' विधि है मेरा एक तरीका नहीं है (यह Google Play गेम्स सेवाओं से आता है), इसलिए, यह ठीक है।
'MyMethodName' से कहा जाता है के भीतर ऐसा तरह onConnected:
@Override
public void onConnected(Bundle arg0) {
myClassObject.myMethodName(); //Where myClassObject is an instance of MyClassName
}
डीबग मेरी build.gradle फ़ाइल में अक्षम पर सेट किया जाता है।
मैं प्ले कंसोल में mapping.txt फ़ाइलों को अपलोड नहीं करता हूं, मैं अपने डी-ओबफस्केटेड स्टैकट्रैस को देखने के लिए मैन्युअल रूप से रीट्रेस चलाता हूं।
मैं सराहना करता हूं कि कोई मुझे समझने में मदद कर सकता है कि मैं यहां अपना पूर्ण वर्ग और विधि नाम क्यों देख रहा हूं? इसे रोकने के लिए मैं क्या कर सकता/सकती हूं?
क्या 'MyClassName' एक 'गतिविधि' कक्षा है? क्या आप डिफ़ॉल्ट 'ProGuard' नियमों का उपयोग कर रहे हैं? –