2013-04-26 7 views
7

मेरा ऐप प्रोजेगार्ड सक्षम किए बिना पूरी तरह से चलता है लेकिन जब मैं इसे सक्षम करता हूं तो ऐप तुरंत क्रैश हो जाता है। मैंने कॉन्फ़िगरेशन में कई संयोजनों का कोई फायदा नहीं लिया है।प्रोजेवार्ड सक्षम के साथ ऐप क्रैशिंग

क्या ऐसा कुछ है जो मुझे रखना चाहिए कि मुझे याद आ रही है?

ProGuard config: https://gist.github.com/hanleyhansen/99fc07807950bae8e4f5

सुलझे लॉग: https://gist.github.com/hanleyhansen/6cba7fc941a79d85802f

onSuccess(): https://gist.github.com/hanleyhansen/e7a4916c42d3ca065c99

+0

क्या आप obfuscation को बंद कर सकते हैं लेकिन अन्य विकल्प (ऑप्टिमाइज़ेशन, विधि स्ट्रिपिंग) सक्षम कर सकते हैं? यदि यह अभी भी विफल रहता है तो आप यह देखने में सक्षम होंगे कि यह कहां टूट रहा है। – fadden

+0

@fadden अच्छा विचार। मुझे यह कैसे करना है? – hanleyhansen

+1

क्या आप ट्रैक कर सकते हैं कि 'onSuccess()' में कौन सी पंक्ति एनपीई फेंकता है? –

उत्तर

6

मुझे अपमानजनक कोड मिला।

https://github.com/google/gson/blob/9f8ace9ac4c56b82eba1bbd8b44f80e042bda7e0/examples/android-proguard-example/proguard.cfg

और अब सब कुछ काम कर रहा है: मैं निम्नलिखित मैच के लिए मेरे Proguard.cfg बदल गया है!

+1

ऐसा लगता है कि लिंक टूटा हुआ है, "एसवीएन होस्टिंग को स्थायी रूप से अक्षम कर दिया गया है" –

+0

हाँ, यह वास्तव में अच्छा होगा यदि आप केवल आपके द्वारा उपयोग किए गए कोड को संलग्न करेंगे। –

+0

मुझे नहीं पता कि कौन सा संशोधन है, लेकिन फ़ाइल https://github.com/google/gson/commits/master/examples/android-proguard-example/proguard.cfg पर है – Lev

3

आमतौर पर ProGuard कुछ वर्गों को हटा अगर वे स्पष्ट रूप से के रूप में

-keepclassmembers .... 

लेकिन इस तरह से सेट नहीं हैं त्रुटियों को classNotFound, NoSuchMethodException आदि के रूप में दिखाया गया है ..

वैसे भी this का उपयोग करके लॉग बिल्ली को डीकोड करें और वास्तव में एनपीई का कारण बनें।

+0

ग्रेट सामान! ठीक है, मैंने अपना जवाब unobfuscated डंप के साथ अद्यतन किया। – hanleyhansen

+1

मैं इसे ठीक करने में सक्षम था! – hanleyhansen

+0

या तो मैंने सोचा .... मैंने अपने नए कोड के साथ अपना प्रश्न अपडेट किया है। – hanleyhansen

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