java selenium啓動driver時報錯java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkSt...

1、報錯信息

在使用Java selenium的時候,遇到報錯,沒法成功建立driver.
報錯以下:
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V

2、問題排查

在網上查詢以後,發現問題可能有兩種:

1. 沒有設置chrome driver的位置

//設置drver位置的方法。
System.setProperty(「webdriver.chrome.driver」, 「/Users/supinrong/code/driver/chromedriver」);

2. guava包依賴衝突

排除掉第一種可能後,只能再查看第二種了。

3、guava包版本依賴衝突排查

1. gradle打印依賴包

打印項目依束包的指令
./gradlew app:dependencies
./gradlew dependencies -q --configuration compile

2. 檢查依賴包中全部的guava包版本

能夠在依賴樹中看到,有不少使用guava包的地方,可是隻有一個地方使用的是guava-jdk. 所以猜想是須要排除掉這個jdk包
 
|    |         \--- com.google.guava:guava-jdk5:17.0
|    +--- org.springframework:spring-core:3.1.2.RELEASE |    |    +--- org.springframework:spring-asm:3.1.2.RELEASE |    |    \--- commons-logging:commons-logging:1.1.1 -> 1.2
|    +--- com.logicmonitor:propertybase:115.1.0
|    |    +--- com.santaba:logicmonitor-util:1.106.2 -> 1.115.3 (*) |    |    +--- org.apache.commons:commons-lang3:3.4 -> 3.6
|    |    +--- com.google.guava:guava:20.0 -> 25.0-jre (*)

3. 修改項目的build.gradle文件

修改引入guava-jdk包的依賴包的依賴方式,把gauva-jdk排除在導入範圍以外。
compile (「xxx:xxx:xxx」){ exclude group: ‘com.google.guava’, module:‘guava-jdk5’ }
相關文章
相關標籤/搜索