2014-02-28 72 views
12

我不斷收到以下堆棧跟蹤,我不確定它的含義。協議消息結束標記標記與預期標記不匹配

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) 
  • 什麼是「協議的消息結束組標籤不匹配預期的標籤。」意思?
  • 什麼是「消息結束組標籤」?
  • 這是否記錄在某處?在protobuf的

回答

12

組被寫成一個開始/結束數字對 - 有點像如何<foo>需要</foo>,但在不同的格式。本質上它抱怨它發現了一個</bar>而不是(只是:xml只是一個隱喻)。的細節是在encoding specification,但多空是之一:

  • 數據是固有的損壞(或者通過由一個編碼器故障的損傷),或
  • 的數據變得損壞,而讀或
  • 的數據是好的,你給了一個錯誤的解碼器

如果我猜的話,該數據已在運輸途中受損 - 因爲that is so frighteningly common

+0

請問你們,請考慮[這個相關的問題](http://stackoverflow.com/questions/29531899/how-to-write-a-valid-decoding-file-based-on-a-given-proto-reading-from-a-pb ?noredirect = 1#comment47219218_29531899) –