使用腾讯的tencentcloud-sdk-java时,启动程序报错:java.lang.NoSuchFieldError: Companion。

报错原因

com.squareup.okio包版本不兼容okhttp3版本

引发这个问题的原因可能和其他SDK包引用冲突

解决办法

1、和冲突的包换个位置,用高版本的okio包即可
2、或者添加依赖冲突的sdk的时候排除指定包即可

如何找到冲突的包

1、使用mvn dependency:tree命令查看Maven项目中的jar包依赖关系

在工程目录下执行mvn dependency:tree>tree.txt ,将依赖关系输出到tree.txt ,打开文件就能查找到哪个jar引入了com.squareup.okio,在pom.xml里将之屏蔽即可。

比如我这里就是由于selenium引入okio包,屏蔽之后就恢复正常了。

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
<exclusions>
<exclusion>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
</exclusion>
</exclusions>
</dependency>