2011-06-07 13 views
6

Kodun dikkat çekmesi için proguard aracında yerleşik tutulması kullanıyorum, bu iyi çalışıyor. Ancak, gizlenmiş kodun yığın izini yeniden izlemeyi denediğimde, retrace, engellenmemiş bir stacktrace oluşturmuyor.Proguard retrace, yığın izini gerçek kaynağa eşleştirmiyor

Doğru olanı kullandığınızdan emin olmak için mapping.txt dosyasını iki kez kontrol ediyorum.

burada yığın izleme

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) 

ve varsayılan olarak ProGuard en retrace aracı yığını bekliyor

retrace.bat -verbose mapping.txt obfuscated_trace.txt 

cevap

15

güzel biçimlendirilmiş olması izleri komutunu, bunlar java tarafından basılır yolu kullanıyor. Bu, uygun yerlerde satır sonları beklediği ve "ERROR/AndroidRuntime (19398)" gibi öneklerin bulunmadığı anlamına gelir. Alternatif olarak, ReTrace'in yığın izlerini ayrıştırmak için kullandığı düzenli ifadeyi değiştirebilirsiniz.

+0

Normal ekspr modelini nasıl geçebilirim? Seçenek nedir? – Gopinath

+0

@Gopinath Cfr. kullanım kılavuzu. –

1

ReTrace'i kullanmadan önce orijinal Java yığın izini ayıklamak için traceview kullanın.

+0

Bunu tam olarak nasıl yapıyorsunuz? –

+0

Üzgünüz, şimdi işe yaramayacağım. Artık bağımsız izleme görünümü kullanımdan kaldırıldı. –

+0

İşte basit bir Regex: '. * (: \ U0020)' –

İlgili konular