使用 protobuf 2.4.1 验证错误
VerifyError using protobuf 2.4.1
尝试为给定的 protobuf 创建 newBuilder() 对象时出现以下错误 class。在 classpath.
中有 protobuf-java-2.4.1.jar
同样在服务器端工作,但在客户端失败。
java.lang.VerifyError:错误的 return 类型
异常详细信息:
地点:
packagename.QuerySpecProtos$QuerySpec$Builder.clone()Lcom/google/protobuf/AbstractMessageLite$Builder; @4:一个return
原因:
类型 'packagename.QuerySpecProtos$QuerySpec$Builder'(当前帧,堆栈 [0])不可分配给 'com/google/protobuf/AbstractMessageLite$Builder'(来自方法签名)
当前帧:
bci: @4
标志:{}
当地人:{ 'packagename.QuerySpecProtos$QuerySpec$Builder' }
堆栈:{'packagename.QuerySpecProtos$QuerySpec$Builder'}
字节码:
0000000: 2ab6 0062 b0
看起来版本不匹配。您需要确保:
- 您编译时使用的jar版本与运行.
- 您使用相同版本的
protoc
来匹配jar。
尝试为给定的 protobuf 创建 newBuilder() 对象时出现以下错误 class。在 classpath.
中有 protobuf-java-2.4.1.jar同样在服务器端工作,但在客户端失败。
java.lang.VerifyError:错误的 return 类型 异常详细信息: 地点: packagename.QuerySpecProtos$QuerySpec$Builder.clone()Lcom/google/protobuf/AbstractMessageLite$Builder; @4:一个return 原因: 类型 'packagename.QuerySpecProtos$QuerySpec$Builder'(当前帧,堆栈 [0])不可分配给 'com/google/protobuf/AbstractMessageLite$Builder'(来自方法签名) 当前帧: bci: @4 标志:{} 当地人:{ 'packagename.QuerySpecProtos$QuerySpec$Builder' } 堆栈:{'packagename.QuerySpecProtos$QuerySpec$Builder'} 字节码: 0000000: 2ab6 0062 b0
看起来版本不匹配。您需要确保:
- 您编译时使用的jar版本与运行.
- 您使用相同版本的
protoc
来匹配jar。