android app连续闪退打不开,无法捕获

1,测试反馈app连续闪退, 一打开就闪退,无限循环,可我明明已经做了闪退3次就清数据,闪退3次后根本没清数据,不知道是没捕获到还是什么
2,我有两个问题需要大家帮忙,第一是什么导致app连续闪退,第二,我明明写了Thread.UncaughtExceptionHandler捕获代码为什么没捕获到

以下是闪退后到日志:

11-21 10:37:24.101 1761-1761/? D/HeadsetPhoneState: Exit onSignalStrengthsChanged
11-21 10:37:26.983 3141-3141/? I/IgnoreTouchEvent: ignoreinputaction = false, x = 140.86957 , y = 1058.4487, pkg = com.smartisanos.launcher, wid = 35.0, slopex = 35.0, slopy = 24.0, timeout = 200.0
11-21 10:37:27.082 3141-3141/? I/IgnoreTouchEvent: ignore up event : x = 140.86957, ignore = false, ignoreUp = false, pkg = com.smartisanos.launcher
11-21 10:37:27.091 1325-18884/? I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.waimai.waimai/.activity.SplashActivity (has extras)} from uid 10018 on display 0
11-21 10:37:27.131 1325-1424/? I/IgnoreTouchEvent: ignoreTouchEvent onWindowAttached
11-21 10:37:27.141 1325-1746/? I/ActivityManager: Start proc 25535:com.waimai.waimai/u0a37 for activity com.waimai.waimai/.activity.SplashActivity
11-21 10:37:27.142 1325-1746/? V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@f7202db
11-21 10:37:27.180 3022-3022/? D/PILLS: GlobalBubbleManager : hideAllMailBubbles
11-21 10:37:27.181 3022-3022/? I/PILLS: BubbleController : bubble delay to gone already
                                        
                                        [ 11-21 10:37:27.182   536: 1653 D/         ]
                                        SurfaceMonitor closed!
11-21 10:37:27.208 25535-25535/? I/art: Waiting for a blocking GC AddRemoveAppImageSpace
11-21 10:37:27.209 25535-25535/? I/art: Starting a blocking GC AddRemoveAppImageSpace
11-21 10:37:27.226 25535-25535/? D/NetworkSecurityConfig: No Network Security Config specified, using platform default
11-21 10:37:27.229 25535-25535/? I/Sophix.LogTool:  setLogLevel valule: I
11-21 10:37:27.229 25535-25535/? I/Sophix.SophixManager:  Sophix 3.1.3 starting....
11-21 10:37:27.235 25535-25535/? I/System.out: oreo sophixmode = 0info = do not found any patch file to load.
11-21 10:37:27.235 25535-25535/? I/System.out: oreo sophix 其它错误信息, 查看PatchStatus类说明
11-21 10:37:27.236 25535-25535/? I/MultiDex: VM with version 2.1.0 has multidex support
11-21 10:37:27.236 25535-25535/? I/MultiDex: install
11-21 10:37:27.236 25535-25535/? I/MultiDex: VM has multidex support, MultiDex support library is disabled.
11-21 10:37:27.247 25535-25535/? I/art: Rejecting re-init on previously-failed class java.lang.Class<com.orhanobut.hawk.Hawk$2>: java.lang.NoClassDefFoundError: Failed resolution of: Lrx/Observable$OnSubscribe;
11-21 10:37:27.247 25535-25535/? I/art:     at void com.waimai.waimai.widget.BaseApplication.onCreate() (BaseApplication.java:201)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.Instrumentation.callApplicationOnCreate(android.app.Application) (Instrumentation.java:1025)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5618)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread.-wrap2(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1708)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.os.Looper.loop() (Looper.java:159)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6345)
11-21 10:37:27.247 25535-25535/? I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-21 10:37:27.247 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1096)
11-21 10:37:27.247 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:883)
11-21 10:37:27.247 25535-25535/? I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "rx.Observable$OnSubscribe" on path: DexPathList[[zip file "/data/app/com.waimai.waimai-1/base.apk"],nativeLibraryDirectories=[/data/app/com.waimai.waimai-1/lib/arm, /system/fake-libs, /data/app/com.waimai.waimai-1/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
11-21 10:37:27.247 25535-25535/? I/art:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
11-21 10:37:27.247 25535-25535/? I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
11-21 10:37:27.247 25535-25535/? I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
11-21 10:37:27.247 25535-25535/? I/art:     at void com.waimai.waimai.widget.BaseApplication.onCreate() (BaseApplication.java:201)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.Instrumentation.callApplicationOnCreate(android.app.Application) (Instrumentation.java:1025)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5618)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread.-wrap2(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1708)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.os.Looper.loop() (Looper.java:159)
11-21 10:37:27.247 25535-25535/? I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6345)
11-21 10:37:27.247 25535-25535/? I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-21 10:37:27.247 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1096)
11-21 10:37:27.247 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:883)
11-21 10:37:27.249 25535-25535/? I/art: Rejecting re-init on previously-failed class java.lang.Class<com.orhanobut.hawk.Hawk$1>: java.lang.NoClassDefFoundError: Failed resolution of: Lrx/Observable$OnSubscribe;
11-21 10:37:27.249 25535-25535/? I/art:     at void com.waimai.waimai.widget.BaseApplication.onCreate() (BaseApplication.java:201)
11-21 10:37:27.249 25535-25535/? I/art:     at void android.app.Instrumentation.callApplicationOnCreate(android.app.Application) (Instrumentation.java:1025)
11-21 10:37:27.249 25535-25535/? I/art:     at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5618)
11-21 10:37:27.249 25535-25535/? I/art:     at void android.app.ActivityThread.-wrap2(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
11-21 10:37:27.249 25535-25535/? I/art:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1708)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.os.Looper.loop() (Looper.java:159)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6345)
11-21 10:37:27.250 25535-25535/? I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-21 10:37:27.250 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1096)
11-21 10:37:27.250 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:883)
11-21 10:37:27.250 25535-25535/? I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "rx.Observable$OnSubscribe" on path: DexPathList[[zip file "/data/app/com.waimai.waimai-1/base.apk"],nativeLibraryDirectories=[/data/app/com.waimai.waimai-1/lib/arm, /system/fake-libs, /data/app/com.waimai.waimai-1/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
11-21 10:37:27.250 25535-25535/? I/art:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
11-21 10:37:27.250 25535-25535/? I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
11-21 10:37:27.250 25535-25535/? I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
11-21 10:37:27.250 25535-25535/? I/art:     at void com.waimai.waimai.widget.BaseApplication.onCreate() (BaseApplication.java:201)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.app.Instrumentation.callApplicationOnCreate(android.app.Application) (Instrumentation.java:1025)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5618)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.app.ActivityThread.-wrap2(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1708)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.os.Looper.loop() (Looper.java:159)
11-21 10:37:27.250 25535-25535/? I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6345)
11-21 10:37:27.250 25535-25535/? I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-21 10:37:27.250 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1096)
11-21 10:37:27.250 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:883)
11-21 10:37:27.253 25535-25535/? I/art: Rejecting re-init on previously-failed class java.lang.Class<com.orhanobut.hawk.HawkBuilder$2>: java.lang.NoClassDefFoundError: Failed resolution of: Lrx/functions/Func0;
11-21 10:37:27.253 25535-25535/? I/art:     at com.orhanobut.hawk.HawkBuilder com.orhanobut.hawk.Hawk.init(android.content.Context) (Hawk.java:33)
11-21 10:37:27.253 25535-25535/? I/art:     at void com.waimai.waimai.widget.BaseApplication.onCreate() (BaseApplication.java:201)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.Instrumentation.callApplicationOnCreate(android.app.Application) (Instrumentation.java:1025)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5618)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread.-wrap2(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1708)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.os.Looper.loop() (Looper.java:159)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6345)
11-21 10:37:27.253 25535-25535/? I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-21 10:37:27.253 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1096)
11-21 10:37:27.253 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:883)
11-21 10:37:27.253 25535-25535/? I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "rx.functions.Func0" on path: DexPathList[[zip file "/data/app/com.waimai.waimai-1/base.apk"],nativeLibraryDirectories=[/data/app/com.waimai.waimai-1/lib/arm, /system/fake-libs, /data/app/com.waimai.waimai-1/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]
11-21 10:37:27.253 25535-25535/? I/art:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
11-21 10:37:27.253 25535-25535/? I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
11-21 10:37:27.253 25535-25535/? I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
11-21 10:37:27.253 25535-25535/? I/art:     at com.orhanobut.hawk.HawkBuilder com.orhanobut.hawk.Hawk.init(android.content.Context) (Hawk.java:33)
11-21 10:37:27.253 25535-25535/? I/art:     at void com.waimai.waimai.widget.BaseApplication.onCreate() (BaseApplication.java:201)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.Instrumentation.callApplicationOnCreate(android.app.Application) (Instrumentation.java:1025)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread.handleBindApplication(android.app.ActivityThread$AppBindData) (ActivityThread.java:5618)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread.-wrap2(android.app.ActivityThread, android.app.ActivityThread$AppBindData) (ActivityThread.java:-1)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1708)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.os.Looper.loop() (Looper.java:159)
11-21 10:37:27.253 25535-25535/? I/art:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6345)
11-21 10:37:27.253 25535-25535/? I/art:     at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
11-21 10:37:27.253 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1096)
11-21 10:37:27.253 25535-25535/? I/art:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:883)
11-21 10:37:27.256 25535-25535/? W/Hawk: key is generating without password
11-21 10:37:27.256 25535-25535/? W/Hawk: key is generated without password
11-21 10:37:27.260 25535-25535/? D/JPush: [JPushInterface] action:init - sdkVersion:2.1.5, buildId:298
11-21 10:37:27.272 25535-25535/? D/JPush: [JPushGlobal] metadata: appKey - 239b3fbf21575861caecae55
11-21 10:37:27.273 25535-25535/? D/JPush: [JPushGlobal] metadata: channel - jpush_release
11-21 10:37:27.309 25535-25535/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.waimai.waimai, PID: 25535
                                                   java.lang.RuntimeException: Unable to create application com.waimai.waimai.widget.BaseApplication: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.waimai.waimai.model.RongyunInfo.appkey' on a null object reference
                                                       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5621)
                                                       at android.app.ActivityThread.-wrap2(ActivityThread.java)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1708)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:159)
                                                       at android.app.ActivityThread.main(ActivityThread.java:6345)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1096)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:883)
                                                    Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.waimai.waimai.model.RongyunInfo.appkey' on a null object reference
                                                       at com.waimai.waimai.widget.BaseApplication.onCreate(BaseApplication.java:238)
                                                       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
                                                       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5618)
                                                       at android.app.ActivityThread.-wrap2(ActivityThread.java) 
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1708) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                       at android.os.Looper.loop(Looper.java:159) 
                                                       at android.app.ActivityThread.main(ActivityThread.java:6345) 
                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1096) 
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:883) 
11-21 10:37:27.315 1325-2343/? W/ActivityManager:   Force finishing activity com.waimai.waimai/.activity.SplashActivity, mTaskHistory size = 20
                                                  
                                                  [ 11-21 10:37:27.334  1325: 2343 D/         ]
                                                  SurfaceMonitor closed!
11-21 10:37:27.347 1325-1378/? W/ActivityManager: Skipping crash dialog of ProcessRecord{c30508d 25535:com.waimai.waimai/u0a37}: background
11-21 10:37:27.348 25535-25535/? I/Process: killProcess pid=25535
                                            java.lang.RuntimeException
                                                at android.os.Process.killProcess(Process.java:1252)
                                                at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:111)
                                                at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
                                                at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
11-21 10:37:27.348 25535-25535/? I/Process: Sending signal. PID: 25535 SIG: 9
11-21 10:37:27.361 1325-18879/? I/ActivityManager: Process com.waimai.waimai (pid 25535) has died
11-21 10:37:27.361 1325-18879/? D/ActivityManager: cleanUpApplicationRecord -- 25535
11-21 10:37:27.361 1325-18879/? W/ActivityManager: Service crashed 2 times, stopping: ServiceRecord{c0e3f0f u0 com.waimai.waimai/cn.jpush.android.service.PushService}
11-21 10:37:27.362 1325-1424/? I/IgnoreTouchEvent: ignoreTouchEvent onWindowDetached
11-21 10:37:27.366 1325-1812/? D/WindowManager: relayoutVisibleWindow: Window{c7be61b u0 SurfaceView - com.smartisanos.launcher/com.smartisanos.launcher.Launcher EXITING} mAnimatingExit=true, mRemoveOnExit=false, mDestroying=false
11-21 10:37:27.373 1325-18887/? D/WindowManager: relayoutVisibleWindow: Window{32fad18 u0 com.smartisanos.launcher/com.smartisanos.launcher.Launcher EXITING} mAnimatingExit=true, mRemoveOnExit=false, mDestroying=false
11-21 10:37:27.385 3022-3022/? D/PILLS: GlobalBubbleManager : hideAllMailBubbles
11-21 10:37:27.385 3022-3022/? I/PILLS: BubbleController : bubble delay to gone already
11-21 10:37:27.413 1325-23682/? W/InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@382708e attribute=null, token = android.os.BinderProxy@883f8fb
11-21 10:37:27.941 1761-1761/? D/HeadsetPhoneState: Enter onSignalStrengthsChanged
11-21 10:37:27.941 1761-1761/? D/HeadsetPhoneState: Exit onSignalStrengthsChanged

以下是我Application代码

public class BaseApplication extends Application {

    public static Context context;
    public static String cookieStore;
    public static QiniuFileUploader qiniuUp=new QiniuFileUploader();

    public interface ShopHixEvent {
        void handle(int mode, int code, String info, int handlePatchVersion);
    }
    public static ShopHixEvent sophixEvent=null;

    private static BaseApplication mInstance;

    public static BaseApplication getInstance()
    {
        return mInstance;
    }

    private void initOkGo(){

        HttpHeaders headers = new HttpHeaders();
        headers.put("User-Agent", Global.usergent);    //header不支持中文,不允许有特殊字符
        headers.put("CLIENT_VAR", TextUtils.isEmpty(Api.VERSION_NAME)?"1.0.0":Api.VERSION_NAME);
        headers.put("HCM-API-TYPE", "WRITE");
        headers.put("HCM-API-AK", Api.ATOKEN);
        headers.put("HCM-API-SK", Api.STOKEN);
        headers.put("CLIENT_TYPE", Utils.getClientStr());
        headers.put("AUTHORIZATION", Api.getJwt());
        //headers.put("cookie", cookieStore);

        HttpParams params = new HttpParams();
        params.put("User-Agent", Global.usergent);     //param支持中文,直接传,不要自己编码
        params.put("CLIENT_VAR", TextUtils.isEmpty(Api.VERSION_NAME)?"1.0.0":Api.VERSION_NAME);
        params.put("CLIENT_TYPE", Utils.getClientStr());

        OkGo.getInstance().init(this)

                //.setOkHttpClient(builder.build())               //建议设置OkHttpClient,不设置将使用默认的
                //.setCacheMode(CacheMode.NO_CACHE)               //全局统一缓存模式,默认不使用缓存,可以不传
                //.setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE)   //全局统一缓存时间,默认永不过期,可以不传
                //.setRetryCount(3)                               //全局统一超时重连次数,默认为三次,那么最差的情况会请求4次(一次原始请求,三次重连请求),不需要可以设置为0
                .addCommonHeaders(headers)                      //全局公共头
                .addCommonParams(params);                       //全局公共参数;


        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor("API4HCM_USER");
        //log打印级别,决定了log显示的详细程度
        loggingInterceptor.setPrintLevel(HttpLoggingInterceptor.Level.HEADERS);
        //log颜色级别,决定了log在控制台显示的颜色
        loggingInterceptor.setColorLevel(Level.INFO);
        builder.addInterceptor(loggingInterceptor);

        //全局的读取超时时间
        builder.readTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
        //全局的写入超时时间
        builder.writeTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);
        //全局的连接超时时间
        builder.connectTimeout(OkGo.DEFAULT_MILLISECONDS, TimeUnit.MILLISECONDS);

        //使用sp保持cookie,如果cookie不过期,则一直有效
        //cookiejar=new CookieJarImpl(new SPCookieStore(this));
        builder.cookieJar(new CookieJarImpl(new SPCookieStore(this)));


        //方法一:信任所有证书,不安全有风险
        //HttpsUtils.SSLParams sslParams1 = HttpsUtils.getSslSocketFactory();
        //方法二:自定义信任规则,校验服务端证书
        //HttpsUtils.SSLParams sslParams2 = HttpsUtils.getSslSocketFactory(new SafeTrustManager());
        //方法三:使用预埋证书,校验服务端证书(自签名证书)
        //HttpsUtils.SSLParams sslParams3 = HttpsUtils.getSslSocketFactory(getAssets().open("srca.cer"));
        //方法四:使用bks证书和密码管理客户端证书(双向认证),使用预埋证书,校验服务端证书(自签名证书)
        //HttpsUtils.SSLParams sslParams4 = HttpsUtils.getSslSocketFactory(getAssets().open("xxx.bks"), "123456", getAssets().open("yyy.cer"));
        //builder.sslSocketFactory(sslParams1.sSLSocketFactory, sslParams1.trustManager);
        //配置https的域名匹配规则,详细看demo的初始化介绍,不需要就不要加入,使用不当会导致https握手失败
        //builder.hostnameVerifier(new SafeHostnameVerifier());



      /*  //必须调用初始化
        OkGo.init(this);

        //以下设置的所有参数是全局参数,同样的参数可以在请求的时候再设置一遍,那么对于该请求来讲,请求中的参数会覆盖全局参数
        //好处是全局参数统一,特定请求可以特别定制参数
        try {
            //以下都不是必须的,根据需要自行选择,一般来说只需要 debug,缓存相关,cookie相关的 就可以了
            OkGo.getInstance()

                    //打开该调试开关,控制台会使用 红色error 级别打印log,并不是错误,是为了显眼,不需要就不要加入该行
                    .debug("OkGo")

                    //如果使用默认的 60秒,以下三行也不需要传
                    .setConnectTimeout(OkGo.DEFAULT_MILLISECONDS)  //全局的连接超时时间
                    .setReadTimeOut(OkGo.DEFAULT_MILLISECONDS)     //全局的读取超时时间
                    .setWriteTimeOut(OkGo.DEFAULT_MILLISECONDS)    //全局的写入超时时间

                    //可以全局统一设置缓存模式,默认是不使用缓存,可以不传,具体其他模式看 github 介绍 https://github.com/jeasonlzy/
                    .setCacheMode(CacheMode.NO_CACHE)

                    //可以全局统一设置缓存时间,默认永不过期,具体使用方法看 github 介绍
                    .setCacheTime(CacheEntity.CACHE_NEVER_EXPIRE)

                    //如果不想让框架管理cookie,以下不需要
//                .setCookieStore(new MemoryCookieStore())                //cookie使用内存缓存(app退出后,cookie消失)
                    .setCookieStore(new PersistentCookieStore());          //cookie持久化存储,如果cookie不过期,则一直有效

                    //可以设置https的证书,以下几种方案根据需要自己设置,不需要不用设置
//                    .setCertificates()                                  //方法一:信任所有证书
//                    .setCertificates(getAssets().open("srca.cer"))      //方法二:也可以自己设置https证书
//                    .setCertificates(getAssets().open("aaaa.bks"), "123456", getAssets().open("srca.cer"))//方法三:传入bks证书,密码,和cer证书,支持双向加密

                    //可以添加全局拦截器,不会用的千万不要传,错误写法直接导致任何回调不执行
//                .addInterceptor(new Interceptor() {
//                    @Override
//                    public Response intercept(Chain chain) throws IOException {
//                        return chain.proceed(chain.request());
//                    }
//                })

                    //这两行同上,不需要就不要传
                    //.addCommonHeaders(headers)                                         //设置全局公共头
                    //.addCommonParams(params);                                          //设置全局公共参数
        } catch (Exception e) {
            e.printStackTrace();
        }
*/

    }
    //CookieJarImpl cookiejar;

    @Override
    public void onCreate() {

        SophixManager.getInstance().queryAndLoadNewPatch();
        super.onCreate();
        /*
        默认使用的高度是设备的可用高度,也就是不包括状态栏和底部的操作栏的,如果你希望拿设备的物理高度进行百分比化:
         */
        AutoLayoutConifg.getInstance().useDeviceSize();


        Api.VERSION_NAME=Utils.getVersionName(getApplicationContext());
        // 这里实现SDK初始化,appId替换成你的在Bugly平台申请的appId
        // 调试时,将第三个参数改为true

        /*app过场*/
        Once.initialise(this);

        context = this;
        Hawk.init(this)
                .setEncryptionMethod(HawkBuilder.EncryptionMethod.MEDIUM)
                .setStorage(HawkBuilder.newSharedPrefStorage(this))
                .setLogLevel(LogLevel.FULL)
                .build();
        JPushInterface.setDebugMode(true);
        JPushInterface.init(this);





        //OkHttpFinal
        OkHttpFinalConfiguration.Builder builder = new OkHttpFinalConfiguration.Builder();
        ClearableCookieJar cookieJar = new PersistentCookieJar(new SetCookieCache(), new SharedPrefsCookiePersistor(this));
        builder.setCookieJar(cookieJar);

        OkHttpFinal.getInstance().init(builder.build());


        //okGo

        initOkGo();


        //Logger.init(Api.packagename);
        Logger.init(Utils.TAG+"-Hawk-");
        //OkLogger

        PlatformConfig.setWeixin("", "");
        //微信 appid appsecret
        PlatformConfig.setSinaWeibo(" ", " ");
        //新浪微博 appkey appsecret
        PlatformConfig.setQQZone("", "");

        if(AccountInfo.getInstance().isExist()){
            if(!Utils.isEmpty(AccountInfo.getInstance().loadAccount().token)){
                RongIM.init(this, AccountInfo.getInstance().loadAccount().rongcloud.appkey);//初始化聊天模块
            }
        }
        //当程序发生Uncaught异常时捕获
        Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler(){
            @Override
            public void uncaughtException (Thread thread, Throwable e)   {
                //做你要做的处理,比如把e.getMessage()保存到文件,发送一个email等等,不是本篇重点,不再赘述
                int crash_count=Hawk.get("crash_count",0);
                Utils.syso("===="+crash_count);
                if(crash_count>=1){
                    Hawk.put("crash_count",0);
                    clearAppUserData(Api.packagename);
                }else {
                    Hawk.put("crash_count",++crash_count);
                    Utils.saveCrashInfo2File(new Exception("thread:"+thread,e));
                    MobclickAgent.onKillProcess(getApplicationContext());
                    System.exit(1);
                }

                //无效 发现sophix内部监听crash异常的优先级比这个高 它发现就清除补丁,之后看有没更好的办法,异常也去加载补丁
                //SophixManager.getInstance().killProcessSafely();
            }});




        //bugly init
        String channel = WalleChannelReader.getChannel(this.getApplicationContext());
        if(Api.isLog) System.out.println("oreo this app channel : "+channel);

        //在代码中配置友盟Channel
        MobclickAgent. startWithConfigure(new MobclickAgent.UMAnalyticsConfig(this.getApplicationContext(),"",channel));
        //测试环境输出友盟日志
        MobclickAgent.setDebugMode(Api.isLog);
        //测试环境不统计错误(false 为不统计)
        MobclickAgent.setCatchUncaughtExceptions(!Api.isLog);

        initBugly(channel);

    }
    public Process clearAppUserData(String packageName) {
        Process p = execRuntimeProcess("pm clear " + packageName);

        return p;
    }
    public Process execRuntimeProcess(String commond) {
        Process p = null;
        try {
            p = Runtime.getRuntime().exec(commond);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return p;
    }

    private void initBugly(String channel){
        Beta.autoCheckUpgrade = true;//true为自动检查更新
        Bugly.init(this.getApplicationContext(), Api.BUGLYKEY, Api.isLog);
        //设置当前为开发设备
        //Bugly.setIsDevelopmentDevice(this, true);
        Bugly.setAppChannel(this, channel);
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        // you must install multiDex whatever tinker is installed!
        if(mInstance==null)mInstance=this;
        if(!Api.isDebug)initSopHix();
        MultiDex.install(base);
        // 安装tinker
        //Beta.installTinker();
    }


    /**
    阿里sophix热修复
     */
    private void initSopHix(){

        String appVersion="1.0.0";
        try {
            appVersion=this.getPackageManager().getPackageInfo(this.getPackageName(),0).versionName;
        }catch (Exception e){
            e.printStackTrace();
        }
        SophixManager.getInstance().setContext(this)
                .setSecretMetaData(Api.SOPHIX_ID,Api.SOPHIX_KEY,Api.SOPHIX_RSA) //代码设置id,key,rsa
                .setAppVersion(appVersion)
                .setAesKey(null)
                .setEnableDebug(Api.isLog)
                .setPatchLoadStatusStub(new PatchLoadStatusListener() {
                    @Override
                    public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
                        if (sophixEvent != null) {
                            sophixEvent.handle(mode,code,info,handlePatchVersion);
                        }

                        System.out.println("oreo sophix"+"mode = "+mode+"info = "+ info);
                        // 补丁加载回调通知
                        if (code == PatchStatus.CODE_LOAD_SUCCESS) {
                            // 表明补丁加载成功
                            System.out.println("oreo sophix"+"表明补丁加载成功");
                        } else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
                            // 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
                            // 建议: 用户可以监听进入后台事件, 然后应用自杀
                            System.out.println("oreo sophix"+"用户可以监听进入后台事件, 然后应用自杀");
                        } else if (code == PatchStatus.CODE_LOAD_FAIL) {
                            // 内部引擎异常, 推荐此时清空本地补丁, 防止失败补丁重复加载
                            //SophixManager.getInstance().cleanPatches();
                            System.out.println("oreo sophix"+"内部引擎异常, 推荐此时清空本地补丁, 防止失败补丁重复加载");
                        } else {
                            // 其它错误信息, 查看PatchStatus类说明
                            System.out.println("oreo sophix"+" 其它错误信息, 查看PatchStatus类说明");
                        }
                    }
                }).initialize();
    }





    /*
    【0907 放弃,因为第三方的key跟app包名绑定】
    beta包正式环境下,动态配置配置SDK

     */
    /*private void forBetaOfOtherSDK(){
        try {

            ApplicationInfo ai = getPackageManager().getApplicationInfo(Api.packagename,
                    PackageManager.GET_META_DATA);
            //极光
            ai.metaData.putString("JPUSH_APPKEY","239b3fbf21575861caecae55");


            //
            *//*ComponentName cn=new ComponentName(this, Av_CancelOrder.class);
            ActivityInfo info=getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA);
            String value = info.metaData.getString("receiver_meta_data");*//*

            // ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(),
            //PackageManager.GET_META_DATA);

        }catch (Exception e){
            e.printStackTrace();
        }


    }*/

}
阅读 9.8k
2 个回答

空指针了,检查下下面这段代码

RongIM.init(this, AccountInfo.getInstance().loadAccount().rongcloud.appkey);//初始化聊天模块

还有 Thread.setDefaultUncaughtExceptionHandler 这个放在 onCreate 方法的第一行,不然前面的异常捕获不到。

首先闪退日志里面已经有代码指向了,你自己查就能知道原因,之所以没有捕获是在你设置全局捕获之前就报错了,所以没法捕获到。另外你的application写的好乱,有些东西可以脱离application进行,或者你将需要的设置的项目设置外部的方法进行调用,看的头皮发麻。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题