
项目里用到了淘宝sdk,需要调用淘宝的接口进行一些业务处理,在跑测试用例时,发现调用sdk的地方报错 Method threw 'java.lang.NoSuchMethodError' exception.
问题解决:TbkDgMaterialOptionalResponse response = client.execute(request);
执行sdk请求的时候,出现NoSuchMethodError,通过断点发现是一个类里的check方法找不到,全局搜索那个类TbkDgMaterialOptionalRequest
是能找到的,打开TbkDgMaterialOptionalRequest,发现check()也有
但是发现TbkDgMaterialOptionalRequest并不是taobao这个jar里的,而是dingding的jar里面的
因为我这个工程里还没有用到钉钉,所以直接把钉钉的maven引用去掉了,再点到TbkDgMaterialOptionalRequest 就正常了
总结:NoSuchMethodError一般可能就2种情况,第一种就是jar引用错了,比如新老jar里的方法不一样,重新引用正确的jar即可。还一种就是我这样的情况,两个jar里都有重复的类,导致类冲突,解决方法就是删掉一个不用的jar包,如果都有用,在其中一个jar里排除掉重复的类即可。