вызов функции вызывает IllegalArgumentException ожидаемый 0, получил 1 при передаче нулевых аргументов - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь использовать отражение для вызова функции 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 для любой помощи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...