我使用协议缓冲区作为数据交换格式。我使用Windows机器发送消息和linux来接收和反序列化它。如果我想在Windows机器上它工作正常。但它在linux中失败并出现此错误
java.lang.NoSuchMethodError: com.google.protobuf.CodedInputStream.readStringRequireUtf8()Ljava/lang/String;
at com.nas.protobuf.location.LocationProto$LocationEvent.<init>(LocationProto.java:96)
at com.nas.protobuf.location.LocationProto$LocationEvent.<init>(LocationProto.java:57)
at com.nas.protobuf.location.LocationProto$LocationEvent$1.parsePartialFrom(LocationProto.java:832)
at com.nas.protobuf.location.LocationProto$LocationEvent$1.parsePartialFrom(LocationProto.java:827)
at com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:141)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:176)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:188)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:193)
at com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:49)
at com.nas.protobuf.location.LocationProto$LocationEvent.parseFrom(LocationProto.java:331)
看起来像stange问题。 Protobuf版本: 3.1.0
注意:仅在Windows上构建两个项目。在Windows中运行一个,在linux中运行一个,它与protobuf版本 2.6.1
一起工作正常任何建议都有帮助