【微信Xposed】kotlin反射异常RuntimeException:looper or serial is null

在写微信xposed模块时,发现微信内部大量使用事件-消息机制以及各种回调函数,导致反射微信Class,实例化时出现各种奇怪的异常:

public b(Context context) {
        AppMethodBeat.i(155865);
        this.mContext = context instanceof Activity ? aj.getContext() : context;
        com.tencent.mm.compatible.a.a.a(8, new a.C0060a() {
            public final void run() {
                AppMethodBeat.i(155864);
                b.this.fEv = new c(b.this.mContext);
                AppMethodBeat.o(155864);
            }
        });
        AppMethodBeat.o(155865);
    }

//实例化这样的类时,就会出现反射异常:looper is null

解决方案:


                    if (Looper.myLooper() == null)
                    {
                        //手动初始化looper
                        Looper.prepare()
                    }
                    val classIntence=outClassCon.newInstance(mContext)
                    XposedBridge.log("实例::"+classIntence.toString())

参考:java.lang.RuntimeException:每个线程只能创建一个Looper

原文地址:https://www.cnblogs.com/Zdelta/p/14122320.html