java.lang.NoSuchMethodError com.google.protobuf.CodedInputStream 依赖jar包版本冲突解决方案
在一台电脑上运行无误,另外一台电脑上代码无报错,但运行时报错NoSuchMethodError,这种大概率为依赖jar包版本冲突问题
java.lang.NoSuchMethodError:com.google.protobuf.CodedInputStream.readStringRequireUtf8()Ljava/lang/String
报错的protobuf版本是3.x版本,替换为2.6.0版本就可以了
解决冲突的依赖包:
1.下载2.6.0的jar包,https://files.cnblogs.com/files/zdz8207/protobuf-java-2.6.0.zip 下载后解压为jar包,更新jar包后clean一下项目。
2.配置maven
maven可以增加exclude配置:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</exclusion>
</exclusions>
</dependency>