如何使用不同的文件导入正确运行协议?

问题描述

我要生成的主文件包含以下import "protos/google_annotations.proto"; import "protos/nakama_annotations.proto"; import "protos/nakama_api.proto";

├── lib
    ├── protos
         ├── google_annotations.proto
         ├── nakama_annotations.proto
         ├── nakama_api.proto
         ├── apigrpc.proto   <--- this is the file to generate.
    

文件夹结构:

protos

突出显示语法没问题。(Android Studio

我遇到错误的2种情况是:

1。

  • 命令在protoc apigrpc.proto --java_out=. --proto_path=.目录中运行

  • 运行 protos/google_annotations.proto: File not found. protos/nakama_annotations.proto: File not found. protos/nakama_api.proto: File not found.

  • 遇到此错误

    protos
  1. 指定所有导入文件
  • 命令在protoc apigrpc.proto --java_out=. --proto_path=google_annotations.proto --proto_path=nakama_annotations.proto --proto_path=nakama_api.proto目录中运行

  • 运行

    apigrpc.proto: File does not reside within any path specified using --proto_path

  • 遇到此错误{{1}}

我做错了什么?

解决方法

我刚刚发现了问题所在。关于import

我必须删除prefex protos,因为导入文件位于同一目录级别。

所以导入变为:

import "google_annotations.proto";
import "nakama_annotations.proto";
import "nakama_api.proto";

之所以将protos放在前面,是因为当我这样放置时,Android Studio插件不会显示红色突出显示。现在,将其删除后,它会突出显示为红色,但是可以使用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...