我正在尝试调用此命令:./ protoc --decode = InitialDataResponse --proto_path = protos InitialDataResponse.proto< Data.bin但我遇到错误:枚举类型“Protos.UnitTier”没有名为“TIER01”的值
答案 0 :(得分:0)
二进制编码的protobuf数据不包含枚举名称。枚举值简单地编码为整数值,意外值不是严格错误(尽管如何访问意外的枚举值取决于您是使用proto2还是proto3约定。)
这听起来像.proto架构中的错误; - InitialDataResponse.proto
。最有可能的是,无效的默认值声明([default = ...]
):指定不存在的枚举值。因此:搜索InitialDataResponse.proto
TIER01
并修复此问题。
如果没有有效的.proto架构,您仍然可以执行解密编码的protobuf数据的合理工作,但如果您可以使用架构,则解码会更容易。现在:您的.proto架构(不是数据)无效。