使用 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,從那個地方得到這個類。但是太繞了,想知道更簡單的方案。