2014-09-01 38 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

相关问题