在写微信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())