【问题标题】:gRPC for kotlin android: Import "google/protobuf/wrappers.proto" does not workkotlin android 的 gRPC:导入“google/protobuf/wrappers.proto”不起作用
【发布时间】:2019-03-10 17:11:09
【问题描述】:

我在 kotlin android 项目中创建了一个与示例 gRPC 非常相似的 gRPC 项目 https://github.com/grpc/grpc-java/tree/master/examples/example-kotlin/android/helloworld

如果我使用示例 proto 文件,则构建过程有效。 但是现在,我已经用不同的原始文件替换了原始文件,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.

【问题讨论】:

  • 嘿!你能找到解决方法吗?我目前想导入google/api/annotations.proto

标签: android kotlin protocol-buffers grpc tensorflow-serving


【解决方案1】:

普通 protobuf jar 附带的“知名”protos 不包含在 kotlin Android 示例正在使用的 protobuf-lite jar 中。该问题在https://github.com/protocolbuffers/protobuf/issues/1889中跟踪

作为一种解决方法,您可以将普通 protobuf jar 中的 protos 添加到您的项目中:

dependencies {
  protobuf 'com.google.protobuf:protobuf-java:3.5.1'
}

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多