1、当然,毫无疑问的来讲要看log日志。(当然了,这个log日志可能是测试提供给你,也可能是自己monkey发现的)
我遇到的日志如下:
CRASH: com.putao.live (pid 31789)
// Short Msg: java.lang.NullPointerException
// Long Msg: java.lang.NullPointerException
// Build Label: Huawei/G750-T20/hwG750-T20:4.2.2/HuaweiG750-T20/C00B122:user/ota-rel-keys,release-keys
// Build Changelist: C00B122
// Build Time: 1416249172000
// java.lang.NullPointerException
// at so.contacts.hub.services.charge.game.ui.b.m(Unknown Source)
// at so.contacts.hub.services.charge.game.ui.b.onClick(Unknown Source)
// at android.view.View.performClick(View.java:4248)
// at android.view.View.onKeyUp(View.java:7907)
// at android.widget.TextView.onKeyUp(TextView.java:5572)
// at android.view.KeyEvent.dispatch(KeyEvent.java:2672)
// at android.view.View.dispatchKeyEvent(View.java:7281)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at android.widget.ScrollView.dispatchKeyEvent(ScrollView.java:353)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at android.support.v4.view.ViewPager.dispatchKeyEvent(Unknown Source)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1398)
// at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1977)
// at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1437)
// at android.app.Activity.dispatchKeyEvent(Activity.java:2415)
// at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1904)
// at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:4292)
// at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:4235)
// at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3254)
// at android.os.Handler.dispatchMessage(Handler.java:107)
// at android.os.Looper.loop(Looper.java:194)
// at android.app.ActivityThread.main(ActivityThread.java:5468)
// at java.lang.reflect.Method.invokeNative(Native Method)
// at java.lang.reflect.Method.invoke(Method.java:525)
// at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:936)
// at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
// at dalvik.system.NativeStart.main(Native Method)
//
2、要找到的当然是应用程序的包。3、寻找mapping.txt文件但是一看到这个包我瞬间蒙圈啦,Unknown Source,这是什么鬼?我知道这是混淆产生的结果,只有类,但是具体对应的方法未知,这时要找混淆时产生的mapping.txt文件,也就是一一对应文件。。文件在bulid/outputs/mapping/debug/文件夹下。
4、分析问题产生在哪里。
****注意:
通过本人的观察,发现一个类的变量容易混淆朱摸不透的变量命,而方法一般直接混淆为对应的方法名。