【发布时间】:2019-06-29 07:09:53
【问题描述】:
我在使用 the Backendless plugin for Flutter 时遇到问题。
我包括
import 'package:backendless_sdk/backendless_sdk.dart';
(根据说明)然后可以使用例如Backendless.UserService。但是如果我尝试生成一个用户来注册,例如:
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 tutorial for creating packages 建议将导出语句直接放在lib 下,而不是lib/src,所以我想知道这是插件结构的错误,还是我做错了什么.
我将不胜感激这个特定问题的解决方案,以及如何更好地理解 dart 中的包、库、导入和导出的指针;不幸的是,我没有发现 the language specification 在这方面特别有用。
(无论我使用flutter analyze还是IntelliJ IDEA,错误和警告都是一样的。)
【问题讨论】:
标签: flutter dart visibility importerror backendless