Генерируемый буфером исходный код Java с ошибками

У меня 3 .proto файлы в той же папке, я планирую добавить LowDataBalanceRequestа также MobileRequest в `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 экземпляр не может быть инициализирован
  • Ожидается еще одна жалобная скобка.

введите описание изображения здесь введите описание изображения здесь Вот мой 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 ответ

Я понял это. Связанная проблема в Github Java: неверный код, созданный при обращении к файлу без оператора пакета

Ошибка исчезла после того, как я добавляю 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;
}
Другие вопросы по тегам