2011-06-07 7 views
6

पर स्टैक ट्रेस मैपिंग नहीं कर रहा है, मैं कोड को अस्पष्ट करने के लिए प्रोजेवार्ड टूल में निर्मित ग्रहण का उपयोग कर रहा हूं, जो ठीक काम करता है। हालांकि जब मैं obfuscated कोड के स्टैक ट्रेस को फिर से चिपकाने का प्रयास करता हूं, तो रिट्रेस एक गैर-obfuscated stacktrace आउटपुट नहीं करता है।प्रोगुआर्ड रिट्रेस वास्तविक स्रोत

मैंने यह सुनिश्चित करने के लिए mapping.txt को दो बार जांच लिया है कि मैं सही उपयोग कर रहा हूं।

यहाँ मेरी स्टैक ट्रेस

ERROR/AndroidRuntime(19398): 
FATAL EXCEPTION: Thread-35 
ERROR/AndroidRuntime(19398): java.lang.NullPointerException 
ERROR/AndroidRuntime(19398):  at android.graphics.Canvas.throwIfRecycled(Canvas.java:954) 
ERROR/AndroidRuntime(19398):  at android.graphics.Canvas.drawBitmap(Canvas.java:980) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.b.aa.a(ProGuard:535) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.g.f.a(ProGuard:220) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.game.GameView.a(ProGuard:198) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.game.GameView.onDraw(ProGuard:98) 
ERROR/AndroidRuntime(19398):  at com.excelectronic.game.ac.run(ProGuard:121) 

और कमांड

retrace.bat -verbose mapping.txt obfuscated_trace.txt 

उत्तर

15

डिफ़ॉल्ट रूप से ProGuard के वापस उपकरण ढेर उम्मीद निशान ठीक से स्वरूपित किया जाना है, जिस तरह से वे जावा से बाहर मुद्रित कर रहे हैं का उपयोग कर रहा है। इसका मतलब है कि यह उचित स्थानों में लाइन ब्रेक की अपेक्षा करता है और "ERROR/AndroidRuntime (1 9 3 9 8)" जैसे कोई उपसर्ग नहीं है।

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

+0

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

+0

@ गोपीनाथ सीएफआर। नियम पुस्तिका। –

1

उपयोग traceview वापस उपयोग करने से पहले मूल जावा स्टैक ट्रेस को निकालने के लिए।

+0

आप यह कैसे करते हैं? –

+0

क्षमा करें मैं इसे अभी काम नहीं कर सकता। और स्टैंडअलोन ट्रेसव्यू अब बहिष्कृत है। –

+0

यहाँ एक सरल Regex है: '*। (: \ U0020)' –

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