Я включил плагин Protobuf для Android, чтобы сгенерировать Java-класс на основе файла .proto. Файл класса генерируется и помещается в app/build/generated/source/proto/debug/javalite/Tetra2.java
, и Android Studio распознает enum и т. Д., Но когда я делаю сборку ./gradlew, вывод выглядит примерно так:
... TetraCommunicator.java:57: ошибка: пакет Tetra2 не существует
Tetra2.tetra_info tetraInfo;
Мне не хватает импорта или чего-то еще? Android Studio не намекает на то, что мне это нужно. Должен ли я импортировать с некоторым определителем имени пакета или что-то? Мне кажется подозрительным ссылаться только на класс Tetra2 напрямую, и gradle думает, что это имя пакета по какой-то причине. Почему Android Studio распознает класс (не жалуется), а сборка Gradle -? Файлы .proto хорошо протестированы, чтобы правильно генерировать C-код, поэтому с ним не должно быть проблем. Кроме Java
Мне также кажется странным, что сгенерированные имена классов иногда начинаются со строчных букв ...
UPDATE
Хммм. Кажется, я должен поместить объявление пакета в файл .proto
, например:
package abc;
Тогда будет работать gradle build. Это почему? Я не хочу связываться с файлом .proto. Это не мое. Как я могу импортировать без декларации пакета?