Java 嵌套类中的Xposed钩子构造函数
我试图使用Xposed钩住嵌套类的构造函数,但是我得到了嵌套类的ClassNotFoundException(SettingsAdapter)。但是,嵌套类中还有另一个方法,它可以很容易地挂接它。我的构造函数调用有什么问题吗 这是构造函数调用:Java 嵌套类中的Xposed钩子构造函数,java,android,constructor,inner-classes,xposed,Java,Android,Constructor,Inner Classes,Xposed,我试图使用Xposed钩住嵌套类的构造函数,但是我得到了嵌套类的ClassNotFoundException(SettingsAdapter)。但是,嵌套类中还有另一个方法,它可以很容易地挂接它。我的构造函数调用有什么问题吗 这是构造函数调用: findAndHookConstructor("com.angrydoughnuts.android.alarmclock.ActivityAlarmSettings$SettingsAdapter", lpparam.classLoader, "Set
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() {
提前谢谢 内部类有一个隐式参数,它保存超级实例。在您的情况下,这将是对
ActivityAlarmSettings
的引用
你可以试试
findAndHookConstructor("com.angrydoughnuts.android.alarmclock.ActivityAlarmSettings$SettingsAdapter", lpparam.classLoader, "com.angrydoughnuts.android.alarmclock.ActivityAlarmSettings", "android.content.Context", "java.util.List", new XC_MethodHook() {
或者只使用hookallconstructor
顺便说一下:您对findAndHookConstructor的调用似乎包含构造函数的名称。这不是预期的参数!构造函数名称始终是类名,并且xposed不希望您传递它。嵌套类是静态的吗?另外:请格式化问题中的代码部分。否,嵌套的类声明是
private final class SettingsAdapter extensed ArrayAdapter{
@F43nd1r很抱歉再次挖掘这个问题,但是如果嵌套类是静态的,会发生什么呢?我现在使用不同的钩子遇到这个问题。钩住静态嵌套类与普通类没有区别(除了名称)@F43nd1r如果在这种情况下setingsadapter是静态的,会有什么不同?删除构造函数名称并添加超级实例非常有效。非常感谢!