我正在尝试使用Xposed挂接嵌套类的构造函数,但我得到了嵌套类(SettingsAdapter)的ClassNotFoundException。但是,嵌套类中还有另一种方法,它可以毫无困难地挂钩。我正在使用构造函数调用有什么问题吗?
这是构造函数调用:
findAndHookConstructor("com.angrydoughnuts.android.alarmclock.ActivityAlarmSettings$SettingsAdapter", lpparam.classLoader, "SettingsAdapter", "android.content.Context", "java.util.List", new XC_MethodHook() {
这是另一种工作方法调用:
findAndHookMethod("com.angrydoughnuts.android.alarmclock.ActivityAlarmSettings$SettingsAdapter", lpparam.classLoader, "getView", "int", "android.view.View", "android.view.ViewGroup", new XC_MethodHook() {
提前致谢!
答案 0 :(得分:0)
内部类有一个隐含参数,它保存超级实例。在您的情况下,这将是对ActivityAlarmSettings
的引用。
您可以尝试
findAndHookConstructor("com.angrydoughnuts.android.alarmclock.ActivityAlarmSettings$SettingsAdapter", lpparam.classLoader, "com.angrydoughnuts.android.alarmclock.ActivityAlarmSettings", "android.content.Context", "java.util.List", new XC_MethodHook() {
或只使用hookAllConstructors
顺便说一下:你对findAndHookConstructor的调用似乎包含了构造函数的名称。这不是预期的参数!构造函数名称始终是类名,并且xposed不希望您传递它。