使用 Xposed newInstance 某个 Class 的时候,发现该类没有默认的构造函数。 直接使用
Class cls2 = XposedHelpers.findClass("com.xx.xx", lpparam.classLoader);
Object object = cls.newInstance()
出现错误如下:
java.lang.InstantiationException: java.lang.Class<com.xx.xx> has no zero argument constructor
at java.lang.Class.newInstance(Native Method)
at com.huruwo.xposed.HookTestLoadPackage.callDyUserInfo(HookTestLoadPackage.java:158)
at com.huruwo.xposed.HookTestLoadPackage.access$300(HookTestLoadPackage.java:36)
at com.huruwo.xposed.HookTestLoadPackage$1.onReceive(HookTestLoadPackage.java:62)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1128)
我们自己写 反射需要无参构造函数,但是这是别人的程序。如何直接newInstance
出这个类呢。
1.我自己的思路就是去 hook 哪个方法使用了 new Class,从那个地方得到这个类。但是太绕了,想知道更简单的方案。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.