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