У меня проблемы с использованием плагина Backendless для Flutter .
Я включаю
import 'package:backendless_sdk/backendless_sdk.dart';
(согласно инструкциям) и может использовать, например, Backendless.UserService
. Но если я попытаюсь сгенерировать пользователя для регистрации, например ::10000
var user = new BackendlessUser();
user.setEmail("info@example.org");
user.setPassword("password");
Backendless.UserService.register(user);
Я получаю ошибку Undefined class 'BackendlessUser'
в первой строке. Этот класс определен в src/modules/user_service.dat
, который экспортируется src/modules/modules.dart
следующим образом:
library modules;
export 'cache.dart';
...
export 'user_service.dart';
который в свою очередь импортируется backendless_sdk.dart
следующим образом:
import 'package:backendless_sdk/src/modules/modules.dart';
Я бы подумал, что он импортируется косвенно при импорте backendless_sdk.dart
, но, видимо, нет. Когда я импортирую его явно (с тем же оператором импорта, но теперь в моем собственном коде, а не только косвенно в backendless_sdk.dart
), я получаю предупреждение Don't import implementation files from another package
. Но это не файл реализации; он экспортируется как часть общедоступного API (по крайней мере, я так понимаю выражение export
).
В руководстве Dart по созданию пакетов предлагается размещать операторы экспорта непосредственно под lib
, а не в lib/src
, поэтому мне интересно, является ли это ошибкой в структуре плагина, или я что-то не так делаю.
Буду благодарен как за решение этой конкретной проблемы, так и за указатели на то, как я могу лучше понять пакеты, библиотеки, импорт и экспорт в dart; к сожалению, спецификация языка не особенно полезна в этом отношении.
(Ошибка и предупреждение одинаковы, использую ли я flutter analyze
или IntelliJ IDEA.)