Protobuf lua 错误:Protocol message tag had invalid wire type

本文通过实例解析了在使用Protobuf定义消息时常见的变量编号误区,指出每个message内的字段编号应从1开始,并且需要在整个message范围内保持唯一,避免因字段编号重复导致的解析错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里只列出本人遇到的情况之一

这种错误我犯了很多次了 很多都是proto文件出的问题

今天被这个protobuf搞蒙了 我弄了一晚上 才发现是一个类似于“公式背错了”的问题

老手应该不会犯这种问题 但是既然有第一个人犯过  那99%的概率就会有第二个人犯过

问题还是出现在proto文件的定义上
每个message中从1开始 而不是文件中的第一个变量从1开始
例如 正确的做法:
message kaller1
{
required int32 id = 1;
required int32 age = 2;
}
message kaller2
{
required string msg = 1;
}

错误的做法:


message kaller1
{
required int32 id = 1;
required int32 age = 2;
}
message kaller2
{
required string msg = 3;
}

这里注意一下  如果是枚举 则没有这样的问题


下面这种情况如果变量少的话是可以进行的 但是当序号达到15左右的时候 在lua ParseFromString 就会出现
Protocol message tag had invalid wire type 这种错误


本人猜想 可能是类中最多只能有10多个变量吧


之前嵌套message的问题我感觉跟这个有关 有时间去试试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值