全部产品
云市场

java_lang_NoSuchMethodException

更新时间:2018-04-19 20:40:04

问题分析:

找不到特定的函数时抛出此类异常,因为编译时依赖的库版本有这个函数的,但是运行时却没有找到,这个异常通常发生在反射调用时被抛出。

解决方案:

找不到特定的函数时抛出此类异常,请注意打包的类库版本信息,一般发生在反射调用时被抛出。请查看日志中此crash附近日志信息,并检查日志报错对应的代码是否写错函数名。

代码示例:

  1. package com.alibaba.mqc.test;
  2. import java.lang.reflect.InvocationTargetException;
  3. import java.lang.reflect.Method;
  4. //简单的反射demo
  5. public class V {
  6. public void printf(){
  7. System.out.println("printf");
  8. }
  9. public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException {
  10. Class c = Class.forName("com.alibaba.mqc.test.V");
  11. Method m = c.getDeclaredMethod("printf",null);
  12. m.invoke(c.newInstance(),null);
  13. }
  14. }

参考文献:

1.https://docs.oracle.com/javase/7/docs/api/java/lang/NoSuchMethodException.html

2.http://stackoverflow.com/questions/19913970/java-java-lang-nosuchmethodexception