一尘不染

协议消息端组标签与预期标签不匹配

java

我一直在获取以下堆栈跟踪信息,并且不确定这意味着什么。

Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol message end-group tag did not match expected tag.
    at com.google.protobuf.InvalidProtocolBufferException.invalidEndTag(InvalidProtocolBufferException.java:73)
    at com.google.protobuf.CodedInputStream.checkLastTagWas(CodedInputStream.java:124)
    at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:189)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:732)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:238)
    at com.google.protobuf.AbstractMessageLite$Builder.mergeFrom(AbstractMessageLite.java:178)
    at com.google.protobuf.AbstractMessage$Builder.mergeFrom(AbstractMessage.java:724)
  • “协议消息端组标签与预期标签不匹配”是什么?意思?
  • 什么是“消息端组标签”?
  • 这是在某处记录的吗?

阅读 245

收藏
2020-12-03

共1个答案

一尘不染

protobuf中的组被写为开始/结束数字对-有点像<foo>需要a
</foo>,但是格式不同。本质上,它抱怨它找到了一个</bar>替代项(只是:xml只是一个隐喻)。详细信息在编码规范中,但总的来说是以下之一:

  • 数据本身是损坏的(由于错误的编码器造成的损坏),或
  • 读取时数据变得损坏,或者
  • 数据很好,您给出了错误的解码器

如果我不得不猜测的话,数据在传输过程中已经被破坏了,因为这是如此的普遍。

2020-12-03