Я пытаюсь подключить метод внутри кода Always-On Display для телефонов OnePlus, но когда я использую 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 не существует.

0
Sparrowhawk 21 Июн 2020 в 23:21

1 ответ

Лучший ответ

Поскольку XposedHelpers.findClass () возвращает java.lang.Class, решение заключалось в создании экземпляра нового объекта следующим образом:

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

А затем вызовите метод, используя этот объект, а не функцию findClass ()

0
Sparrowhawk 2 Июл 2020 в 05:22