嵌套类中的Xposed Hook构造函数

时间:2016-03-20 02:42:05

标签: java android constructor inner-classes xposed

我正在尝试使用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() {

提前致谢!

1 个答案:

答案 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不希望您传递它。