当前位置: 首页 > 知识库问答 >
问题:

如何生成或编译颤振gRPC。dart中的原型文件

逑衡
2023-03-14

我试图生成原型文件dart文件与协议插件遵循此指令https://grpc.io/docs/quickstart/dart/但当我运行此命令行

$ protoc --dart_out=grpc:lib/src/generated -Iprotos protos/helloworld.proto

发生这种类型的错误

PS G:\Flutter Implelemt\helloworld> protoc --dart_out=grpc:lib/src/generated -Iprotos 
protos/helloworld.proto
protos: warning: directory does not exist.
Could not make proto path relative: protos/helloworld.proto: No such file or directory
PS G:\Flutter Implelemt\helloworld> 

使用的依赖项

grpc: ^0.6.6
protobuf: ^1.1.0
protoc_plugin: ^19.2.0+1

你好世界原型

syntax = "proto3";
package helloworld;

service  Greeter  { 
       rpc  SayHello  ( HelloRequest )  returns  ( HelloReply )  {} 
  }

  message  HelloRequest  { 
      string  name  =  1 ; 
    }

  message  HelloReply  { 
       string  message  =  1 ; 
  }

我还尝试以下命令

PS G:\Flutter Implelemt\helloworld> protoc --dart_out=grpc:lib/src/pb --proto_path 
lib/protos/helloworld.proto  
Missing input file.
PS G:\Flutter Implelemt\helloworld> 

如何生成或编译。飞镖/颤振中的原型文件

提前感谢:)

共有2个答案

蒙胤
2023-03-14

使现代化

我解决了上述问题

注意:我使用的是带有VSCode editor的windows 10操作系统

解决步骤

1、安装Dart

2使用以下命令安装Dart协议编译器插件(protoc gen Dart):

pub global activate protoc_plugin

3更新您的PATH,以便原型编译器可以找到插件:

  • 打开环境变量
  • C:\用户[用户名]\AppData\本地\Pub\缓存\bin

4将目录更改为lib文件夹并运行以下命令

>

  • 将您的proto文件夹粘贴到lib目录中

    就像这个flutprojectname/lib/protos/protoFileName。原型

     protoc --dart_out=grpc:src/generated -Iprotos protos/helloworld.proto
    

    如果您看到此错误,文件丢失或找不到文件,请将此**-Iprotos**名称替换为**-proto\u路径**

    注意:如果您看到像这样的二进制错误,请尝试以下方法

    flutter pub cache repair 
    

    或删除此目录中的缓存文件夹C:\用户[用户名]\AppData\本地\Pub\缓存\bin

    如果以上所有操作都失败,请删除缓存文件夹,或同时检查锁定文件中更新的版本(有时锁定会给我更新版本号的问题)

    非常感谢。

  • 索锐藻
    2023-03-14

    确保您的输出目录存在,并且您的输入文件相对路径正确。请参阅您的错误消息:

    protos: warning: directory does not exist.
    Could not make proto path relative: protos/helloworld.proto: No such file or directory
    

    我们可以知道,原型/helloworld.proto似乎不存在。

     类似资料:
    • 我已经编译了我的。proto文件使用protobuf编译器并收到了一组Java文件。我收到了一份原始文件。java文件和。中每个项目的java文件。proto文件,包括消息类型和每个RPC调用,例如publicKeyRequest。java和Quote。java作为RPC和请求参数类型。 这是所有需要的文件吗,因为我似乎仍然无法从服务器获得任何简单的响应? 我想为PublicKeyRequest

    • 我目前正在玩Jaeger Query,并试图通过使用gRPC的应用编程接口访问其内容。我不熟悉gRPC,但我的理解是,我需要在相关的原始文件上使用Python gRPC编译器(grpcio_tools.protoc)来获取有用的Python定义。我想做的是找出通过API访问Jaeger Query的方法,而无需前端UI。 目前,我一直在编译proto文件。每次尝试时,我都会遇到依赖性问题(导入“f

    • 我试图理解模拟是如何与dart和mockito一起工作的。图片我有以下声明: 同样也是一个阶级 然后我的小部件直接访问第一个,作为。 嘲笑这两个人的方法是什么?我应该通过像getit这样的东西访问他们来恰当地嘲笑他们,还是真的有办法?

    • 我用grpc创建了颤振项目,但在尝试从proto生成文件dart时出错。我将proto文件放在lib/protos(rewards.proto)中,然后放在终端put命令“protoc--dart\u out=grpc:lib/src-Iprotos protos/rewards”中。proto' 我的接收器错误是这样的——dart_out:proc-gen-dart: ═х єфрхЄё 我做错

    • 查看google fhir的自述文件,它说要运行,这是可行的,但是没有编译任何协议文件。 运行返回一系列关于找不到其他proto的错误。这会一直追溯到“描述符”。“proto”,它不是文件夹中的proto。该目录中的任何协议文件都不会手动编译为java文件。 *另一方面,我能够从其他来源获取其他protos示例并成功编译它们。 使现代化 运行命令proto--proto_path=proto/st

    • 我想使用带有Flutter的dart SDK>=2.2.0。但我目前使用的Flutter版本是2.1.2 我尝试独立安装2.2.0版本,并成功了: 然而,Flutter并没有使用你在上面看到的这个版本。我试图用独立安装的版本替换flutter使用的()文件,但是当我尝试运行flutter之后出现快照问题,因此我将原来的文件夹放回flutter目录中。 你有什么想法我该怎么更新它吗? PS:我最近(