Protocol buffers 从protobuf生成的Java类存在编译错误
我试图从protobuf生成java类 下面是我的原型-Protocol buffers 从protobuf生成的Java类存在编译错误,protocol-buffers,proto,protobuf-java,Protocol Buffers,Proto,Protobuf Java,我试图从protobuf生成java类 下面是我的原型- syntax = "proto2"; package part2; option java_package = "part2"; message OnlineStoreUser { required int32 userid = 1; required string username = 2; optional string useremail = 3; } 我运行命令main/exec/protoc--java
syntax = "proto2";
package part2;
option java_package = "part2";
message OnlineStoreUser {
required int32 userid = 1;
required string username = 2;
optional string useremail = 3;
}
我运行命令main/exec/protoc--java_out=main/javamain/proto/datamodel.proto
protoc是从
osx-x86_64.zip所在的链接。我也尝试了3.8.0和3.9.1版本
第一个错误是。找不到此函数UnusedPrivateParameter
类型的参数
第二个错误是。是internalBuildGeneratedFileFrom
的2号参数重载版本
我的原始文件有什么问题。如何解决此问题?您提到的错误仅在我使用3.9.1版时发生。版本3.7.1生成的文件不使用带有2个参数的
unusedprivate参数
或internalBuildGeneratedFileFrom
版本。它使用带有3个参数的版本,这不会导致任何错误
请检查您使用的protoc版本是否正确:
$ main/exec/protoc --version
libprotoc 3.7.1
确保您在代码中使用的依赖项与用作protobuf编译器的依赖项相同,例如,这里我使用的是gradle:
compile group: 'com.google.protobuf', name: 'protobuf-java', version: '3.11.1'
我的编译器版本的版本是:
✗ protoc --version
libprotoc 3.11.1
以下是我的测试活动:
syntax = "proto2";
option java_package = "com.github.irvifa.protobuf.schema";
message TestEvent {
optional string event_name = 1 [default = "test.event"];
optional string name = 2;
optional string email = 3;
}
这很有效。这就是解决方案,只要确保生成类时使用的是相同版本的probuf,并且在maven/gradle项目依赖项中,是否可以将此标记为答案?谢谢:)