案发现场:
如某demo中引入了A、B两个工程,而两个工程中都引入了guava依赖,但引入的guava版本不一致,一个是20.0,一个是18.0,导致报各种找不到类下方法错误。
错误信息:
Caused by: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;CLjava/lang/Object;)V
事发原因:
未知。自己猜的。(#^.^#)
解决方案:
使整个项目中引入的相同依赖的版本保持一致。
网上有说是由于guava版本过低问题导致,我升级到了最新的27.0,并反编译查看了报错文件代码,依然没有checkArgument(String, Object)方法,且启动仍然报同样错误。经反复测试,两个版本不一致就报此错误,一致就不报且程序正常运行。