java.lang.NoSuchMethodError:com.google.common.base.Preconditions

我得到这个错误

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124) at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32) at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137) at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:339) at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:123) 

我正在为社交媒体构建机器人,因此我使用Selenium库,并且机器人在Java应用程序上运行良好,但是当我将代码复制到Web应用程序时,我有一个Servlet监听我的Android应用程序,当我运行servlet时,并且servlet调用使用Selenium的bot的代码,当它涉及到该行时它会抛出该错误

 System.setProperty("webdriver.chrome.driver", "C:\\Users\\manue\\OneDrive\\Escritorio\\chromedriver.exe"); driver = new ChromeDriver(); 

我曾经读过它可能是我所拥有的番石榴版本,但是我的版本的番石榴已经更新了,我不知道为什么我会收到这个错误。

在我的maven pom.xml中,我有这样的依赖

   javax javaee-web-api 7.0 provided    org.seleniumhq.selenium selenium-java 3.10.0  

这里有我项目结构的截图。 我项目的截图

看起来像一个类路径问题。 您在我们的类路径中有什么版本的guava-X.jar? (最有可能是webapp的WEB-INF / lib)。 可能的解决方案是在pom.xml中明确声明最新版本的guava。 对于3.10.0的selenium,您需要:

   com.google.guava guava 24.0-jre  

当我从lib路径中删除Google Collections jar时,我找到了可能相关的错误消息的解决方案。

(资源)