在 android studio 上使用 protobuf 的问题

Issue using protobuf on android studio

我刚开始使用 google RPC 库来处理 android 内容。我正在尝试整合以下 link、https://github.com/GoogleCloudPlatform/android-docs-samples/tree/master/speech/Speech on my final year project which is an android chatbot. But I seems to be having hiccups. As after building using the following build.gradle, myGradle。似乎构建文件 "StreamingRecognizeResponse.java" 没有 "IS_INITIALIZED, MAKE_IMMUTABLE & VISIT"。

所以我进一步挖掘并注意到他们使用的是与 github 不同的 GeneratedMessageLite.java 文件。

在我的例子中,文件使用的是 fromprotobuf-javalite-3.11.0,而示例使用的是 from protobuf-lite-3.0.1

我发现示例插件被突出显示而我的没有,而且他们也在使用不同的库 exampleGradle。

如果我右键单击我的 "plugins" > 转到 > 声明或用法。它向我展示了 ProtobufConfigurator.groovy。 虽然示例中使用 PluginAware.java。

我卡在这部分了。希望任何人都能给我解决这个问题的方法。谢谢! 如果我缺少任何信息,请告诉我!

protoc 插件版本(即 protoc-gen-javalite)应始终与 javalite 运行时版本匹配,因为 protobuf lite 有 no API/ABI stability guarantee

Lite 最近重新集成到 protoc 中,因此不再是一个单独的插件。要使用较新的精简版运行时交换到较新的协议,并为 java 内置函数指定 "lite" 选项。

protobuf {
  protoc {
    // must match protobuf-javalite version
    artifact = 'com.google.protobuf:protoc:3.11.0'
  }
  plugins {
    grpc {
      artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
    }
  }
  generateProtoTasks {
    all().each { task ->
      task.builtins {
        java { option 'lite' }
      }
      task.plugins {
        grpc { option 'lite' }
      }
    }
  }
}