2014-09-01 52 views
1

使用ProGuard編譯Android應用程序後,我得到運行時錯誤,並且由於代碼被模糊處理,我不知道錯誤來自哪裏。 沒有ProGuard的應用程序工作正常。 使用ProGuard進行編譯也可以正常工作。 你如何調試混淆代碼?如何在使用ProGuard進行混淆後調試出現運行時錯誤的Android應用程序?

這裏是如何的錯誤之一是這樣的:

com.facebook.aq: com.facebook.c.f got an unexpected method signature: 
public abstract java.lang.Object com.facebook.c.c.a(java.lang.String) 
at com.facebook.c.h.a(Unknown Source) 
at com.facebook.c.f.b(Unknown Source) 
at com.facebook.c.f.invoke(Unknown Source) 
at $Proxy0.a(Native Method) 
at com.facebook.b.al.a(Unknown Source) 
at com.facebook.b.al.a(Unknown Source) 
at com.facebook.f.run(Unknown Source) 
at java.util.Timer$TimerImpl.run(Timer.java:284) 
+0

看起來像一些類嘗試通過反射訪問混淆方法,但無法通過名稱找到方法。外部庫可以使用com.facebook.abc包內的哪些類? – 2014-09-01 16:59:50

回答

0

內proguard的輸出文件夾有映射。

你需要先找到實際的類,方法等與com.facebook.c.f引用,然後看看代碼。

它使用反射嗎?任何引用類的字符串常量? etc

相關問題