正如Marc所说,协议缓冲区版本不匹配会给您确切的信息。特别是如果
- .proto定义使用2.4.3(或更早版本)的protoc.exe转换为Java。
- 您使用2.5.0 protobuffers库
您将通过 GeneratedMessage
类的许多方法(例如getParserForType,getUnknownFields)获得此消息。毫无疑问,其他潜在的不匹配将导致此错误
随着 协议缓冲区2.5.0 它是 必不可少的 ,你 重新生成 所有Java类与2.5.0版本protoc的(或在Windows
protoc.exe)。
如果您使用 协议版本2.4的协议* 库执行由 协议版本2.5 生成的反向运行代码。您将收到以下消息 *
java.lang.VerifyError: class xxx.xxx.xx.. overrides final method getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet;



