Я пытаюсь использовать отражение для вызова функции android.app.ActivityThread.currentActivityThread()
val currentActivityThread = invoke_static_method("android.app.ActivityThread",
"currentActivityThread",
arrayOf<Class<*>>(),
arrayOf<Any>())
fun invoke_static_method(className: String,
methodName: String,
pareTypes: Array<Class<*>>,
pareValues: Array<Any>): Any?{
try {
val objClass: Class<*> = Class.forName(className)
val method = objClass.getMethod(methodName,*pareTypes)
Log.d("dump",method.toString()+pareValues.size)
return method.invoke(null,pareValues)
}catch (e: Exception){
Log.d("dump",e.toString())
e.printStackTrace()
}
return null
}
Из журнала я уже получил этот метод
D/dump: public static android.app.ActivityThread android.app.ActivityThread.currentActivityThread()0
D/dump: java.lang.IllegalArgumentException: Wrong number of arguments; expected 0, got 1
Я не знаю, почему invoke выбрасывает IllegalArgumentException, поскольку pareValues
правильно инициализирован
Thx для любой помощи