protoc decode error:枚举类型没有命名值

时间:2018-01-18 04:35:54

标签: protocol-buffers

我正在尝试调用此命令:./ protoc --decode = InitialDataResponse --proto_path = protos InitialDataResponse.proto< Data.bin但我遇到错误:枚举类型“Protos.UnitTier”没有名为“TIER01”的值

1 个答案:

答案 0 :(得分:0)

二进制编码的protobuf数据不包含枚举名称。枚举值简单地编码为整数值,意外值不是严格错误(尽管如何访问意外的枚举值取决于您是使用proto2还是proto3约定。)

这听起来像.proto架构中的错误; - InitialDataResponse.proto。最有可能的是,无效的默认值声明([default = ...]):指定不存在的枚举值。因此:搜索InitialDataResponse.proto TIER01并修复此问题。

如果没有有效的.proto架构,您仍然可以执行解密编码的protobuf数据的合理工作,但如果您可以使用架构,则解码会更容易。现在:您的.proto架构(不是数据)无效。