首页 > 解决方案 > Xposed findClass() 返回 java.lang.Class

问题描述

我试图在 OnePlus 手机的 Always-On Display 代码中挂钩一个方法,但是当我使用 XposedHelpers.findClass() 时,它最终返回 java.lang.Class,因此返回 noSuchMethodError。

调用代码:

findAndHookMethod("com.oneplus.aod.OpAodThreeKeyStatusView", lpparam.classLoader, "onThreeKeyChanged", "int", new XC_MethodHook() {
  @Override
  protected void afterHookedMethod(MethodHookParam param) throws Throwable {
  XposedHelpers.callMethod((XposedHelpers.findClass("com.oneplus.aod.OpAodDisplayViewManager", lpparam.classLoader)), "startDozing");
  }
});

我正在尝试调用我知道存在的“com.oneplus.aod.OpAodDisplayViewManager”,因为我从自己的手机中提取了 APK。但是,它返回 java.lang.Class,然后返回方法“startDozing”不存在。

标签: javaxposed

解决方案


由于 XposedHelpers.findClass() 返回 java.lang.Class,解决方案是像这样实例化一个新对象:

Object displayManager = "com.oneplus.aod.OpAodDisplayViewManager"

然后使用该对象而不是 findClass() 函数调用该方法


推荐阅读