DexClassLoader - 使用参数调用方法

时间:2011-09-14 13:09:35

标签: java android classloader nosuchmethoderror

我在Web上遇到了一些教程,它们调用简单的方法,我只需要调用接受Context作为参数的方法“startDownload”。我现在称之为:

Class<?> loaded = cl.loadClass("com.test.someclass");
Method m = loaded.getDeclaredMethod("startDownload", null);
m.invoke(this, null); 

其中c1是DexClassLoader。但没有成功。我收到NoSuchMethodException错误,我知道我必须在某处添加参数,但不知道在哪里......有任何建议吗?

由于

1 个答案:

答案 0 :(得分:2)

我建议查看that post

在调用Class.getMethod(name, ...)时,在方法名称之后传递参数,如here所述。您可以直接使用您必须传递的class Class成员:

Method myMethod = myClass.getMethod("doSomethingWithAString", String.class);

也许你忘记了其中一些:如果签名(参数)不正确,将无法找到该方法。