协议缓冲区生成的带有错误的Java源代码

时间:2018-04-11 23:20:11

标签: java protocol-buffers google-protocol-buffer

我在同一个文件夹下有3个.proto个文件,我打算添加LowDataBalanceRequestMobileRequest进入`EventRequest

生成Java源代码的命令:

protoc --java_out=/home/haifzhan/myproject/src/main/java/com/example/util star_event.proto ldb_event.proto  generic_event.proto

star_event.proto和ldb_event.proto可以正确生成Java源代码而没有错误,但generic_event.proto有错误(我的观点是显示错误,所以我附上源代码以外的图像) :

  • 一个错误说Descriptor实例可能未初始化
  • 另一个是抱怨支架。

enter image description here enter image description here 这是我的generic_event.proto

import "star_event.proto";
import "ldb_event.proto";

message EventRequest {
    optional LowDataBalanceRequest ldbRequest = 1;
    optional MobileRequest mobileRequest = 2;
}

我正在使用版本2.6.1

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了。 关于Github Java: Invalid code generated when referencing a file with no package statement

的相关问题

我在所有option java_package个文件中添加.proto后错误消失了:

option java_package = "com.example.util";

这是我的完整.proto个文件:

option java_package = "com.example.util";

<强> ldb_event.proto

option java_package = "com.example.util";

enum RequestTrigger {
    LDB = 1;
    OTHER = 2;
}

message LowDataBalanceRequest {
    required string probe_id = 1;
    required int64 unix_time = 2;
}

<强> generic_event.proto

import "star_event.proto";
import "ldb_event.proto";

option java_package = "com.example.util";

message EventRequest {
    optional LowDataBalanceRequest ldbRequest = 1;
    optional MobileRequest mobileRequest = 2;
}