这里只列出本人遇到的情况之一
这种错误我犯了很多次了 很多都是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的问题我感觉跟这个有关 有时间去试试