在Xpose中,我试图调用AppCustomClass
的方法getResult
对象作为 Hook 方法中的参数传递。
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()
}
}
最佳答案
你可以使用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 解析的。 this( "callMethod") 方法抛出的异常是 XposedHelpers.InitationTargetError ,它给出了调用的方法抛出的异常(如果有)。
关于android - 如何在 Xpose 中调用作为参数传递的自定义对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39485746/