Protocol buffers 从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

我试图从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_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项目依赖项中,是否可以将此标记为答案?谢谢:)