我包含了Android protobuf插件,用于基于.proto文件生成Java类。生成类文件并将其放在app/build/generated/source/proto/debug/javalite/Tetra2.java
下,Android Studio可以识别枚举等,但是当我执行./gradlew构建时,输出类似于:
... TetraCommunicator.java:57:错误:软件包Tetra2不存在 Tetra2.tetra_info tetraInfo;
我缺少一些进口商品吗? Android Studio并不暗示我需要一个。我应该使用某些包名称限定符导入吗?我发现仅直接引用Tetra2类是可疑的,而gradle出于某种原因认为这是程序包名称。为什么Android Studio可以识别课程(不抱怨)而gradle build可以呢? .proto文件经过了充分的测试,可以正确生成C代码,因此不会与它相关联。除了Java
我也感到奇怪的是,生成的类名有时以小写字母开头...
更新
嗯看来我必须在.proto
文件中放入包声明,例如:
package abc;
然后gradle构建将起作用。这是为什么?我不想弄乱.proto文件。不是我的。如何在不使用包声明的情况下导入?