gRPC для kotlin android: импорт "google / protobuf / wrappers.proto" не работает - PullRequest
0 голосов
/ 05 октября 2018

Я создал проект gRPC, очень похожий на пример gRPC для проекта kotlin android, по адресу https://github.com/grpc/grpc-java/tree/master/examples/example-kotlin/android/helloworld

Процесс сборки работает, если я использую прото файлы примера.Но теперь, когда я заменил протофайлы другими, Gradle не может построить мой проект.

Это неверный прото-файл:

syntax = "proto3";

package tensorflow.serving;
option cc_enable_arenas = true;

import "google/protobuf/wrappers.proto";

// Metadata for an inference request such as the model name and version.
message ModelSpec {
  // Required servable name.
  string name = 1;

  // Optional version.
  google.protobuf.Int64Value version = 2;

  // A named signature to evaluate. If unspecified, the default signature will
  // be used.
  string signature_name = 3;
}

Сообщение об ошибке:

  Cause: protoc: stdout: . stderr: app/build/extracted-include-protos/main: warning: directory does not exist.
  app/build/extracted-include-protos/main: warning: directory does not exist.
  app/src/debug/proto: warning: directory does not exist.
  app/src/debug/proto: warning: directory does not exist.
  google/protobuf/wrappers.proto: File not found.
  model.proto: Import "google/protobuf/wrappers.proto" was not found or had errors.
  model.proto:30:3: "google.protobuf.Int64Value" is not defined.

1 Ответ

0 голосов
/ 11 октября 2018

«Хорошо известные» прототипы, поставляемые с обычным jar protobuf, не включены в jar protobuf-lite, который использует пример kotlin для Android.Эта проблема отслеживается в https://github.com/protocolbuffers/protobuf/issues/1889

. В качестве обходного пути вы можете добавить прототипы из обычного файла protobuf jar в ваш проект:

dependencies {
  protobuf 'com.google.protobuf:protobuf-java:3.5.1'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...