Как импортировать определения proto при использовании Proto DataStore?

Перечисление, которое я хочу импортировать в другие файлы .proto

// spc/main/proto/battery_saver_mode_enum.proto:
syntax = "proto3";

option java_package = "com.freephoenix888.savemylife";
option java_multiple_files = false;

enum BatterySaverMode {
  Disabled = 0;
  Enabled = 1;
  Adaptive = 2;
}

Как я пытаюсь импортировать его

// src/main/proto/location_preferences.proto
syntax = "proto3";

import "battery_saver_mode_enum.proto";

option java_package = "com.freephoenix888.savemylife";
option java_multiple_files = true;

message LocationPreferences {
  bool isLocationSharingEnabled = 1;
  BatterySaverMode BatterySaverMode = 2;
}

Ошибка

Cannot resolve import 'battery_saver_mode_enum.proto'

Мои попытки исправить это

Когда я пробую автозаполнение Andriod Studio, я получаю следующее:

Когда я пытаюсь использовать относительный путь import "./battery_saver_mode_enum.proto";
Я получаю ошибку Backslashes, consecutive slashes, ., and .. are not allowed in the virtual path

У меня есть файлы .proto в папке src/main/proto, потому что так написано в каждом руководстве по Proto DataStore. Если я пущу их в другой каталог - я получаю много ошибок компиляции

2
0
127
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто используйте import "battery_saver_mode_enum.proto"; и не обращайте внимания на эту подсказку-ошибку.
Это не ошибка компиляции.
Если вы его соберете - ваш импорт работает, и вы не получите никаких ошибок компиляции по поводу этого импорта.

Руководство по языку proto3 также советует использовать импорт таким образом.

В моем случае мне пришлось переместить свои import выше option, а еще один сломался import где-то ниже по течению.

DevNebulae 30.01.2023 12:57

Другие вопросы по теме