在Xposed中,我正在尝试调用getResult
的方法AppCustomClass
对象在钩子方法中作为参数传递。
protected void myMethod(XC_LoadPackage.LoadPackageParam loadPackageParam) {
final Class<?> appCustomClass = XposedHelpers.findClass("com.app.customClass", loadPackageParam.classLoader);
findAndHookMethod("com.app.aClass", loadPackageParam.classLoader, "aMethod", appCustomClass, new XC_MethodHook() {
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
//How to call param.args[0].getResult()
}
}
答案 0 :(得分:2)
你可以使用XposedHelpers.callMethod 它有两个变种
callMethod(Object obj, String methodName, Class[]<?> parameterTypes, Object... args)
和
callMethod(Object obj, String methodName, Object... args)
所以你可以做到
XposedHelpers.callMethod(param.args[0],"getResult");
如果需要参数
XposedHelpers.callMethod(param.args[0],"getResult",arg1,arg2,arg3);
注意:使用findMethodBestMatch解决该方法。此(“callMethod”)方法抛出的异常是XposedHelpers.InvocationTargetError,它给出了被调用方法抛出的异常(如果有的话)。