xposed перехватывает весь метод сбоя ViewGroup - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу подключить все методы ViewGroup, поэтому напишите ниже код:

final Class<?> mViewGroup = XposedHelpers.findClass("android.view.ViewGroup", lpparam.classLoader);
for (final Method method : mViewGroup.getDeclaredMethods()) {
    if (true == Modifier.isAbstract(method.getModifiers())){
        XposedBridge.log("skip abstract:" + method.getName());
        continue;
    }
    XposedBridge.log("----" + method.getName());
    XposedBridge.hookMethod(method, methodHook);
}

final StringBuilder sb = new StringBuilder();
XC_MethodHook methodHook = new XC_MethodHook() {
    @Override
    protected void beforeHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
        dumpParams(param);
    }

    @Override
    protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable {
        //param.setResult(false);
        XposedBridge.log("after:" + param.getResult());
    }
};

private void dumpParams(XC_MethodHook.MethodHookParam param) {
    sb.setLength(0);
    sb.append(param.method.getName()).append("(");
    for (Object o:param.args) {
        String typnam = "";
        String value = "null";
        if (o != null) {
            typnam = o.getClass().getName();
            value = o.toString();
        }
        sb.append(typnam).append(":").append(value).append(", ");
    }
    XposedBridge.log(sb.toString());
}

Но когда я его запускаю, класс ловушек звучит нормально, но при выполнении он падает на android.view.View$AttachInfo:

am_crash: `java.lang.IllegalAccessError,Illegal class access: 'EdHooker45' attempting to access 'android.view.View$AttachInfo' (declaration of 'EdHooker45' appears in /data/user_de/0/.../1129433416.jar),NULL,120]`
...