我想在我的 flutter 应用程序中使用 API 密钥,并且已读到 envied 包是隐藏 API 密钥的好工具。
问题是我无法让这个工作。这就是我所做的:
$ flutter pub add envied
$ flutter pub add --dev envied_generator
$ flutter pub add --dev build_runner
API_KEY=1234567890
import 'package:envied/envied.dart';
part 'env.g.dart';
@Envied(path: '.env')
abstract class Env {
@EnviedField(varName: 'API_KEY')
static final apiKey = _Env.apiKey;
}
flutter pub run build_runner build
然后我收到此错误:
[SEVERE] envied_generator:envied on lib/env/env.dart:
Envied can only handle types such as `int`, `double`, `num`, `bool` and `String`. Type `InvalidType` is not one of them.
╷
9 │ static final apiKey = _Env.apiKey;
并且不会生成 env.g.dart 文件。
我已经尝试了几次,据我所知,我完全遵循 pub.dev 上的设置,所以不确定如何修复它。
为了使混淆器工作,您需要指定变量类型。示例:
static final String apiKey = _Env.apiKey;
我有同样的问题,即我使用
API_KEY=...
。
更改为
APIKEY
(无下划线)解决了我的问题。
Envied 只能处理
int
、double
、num
、bool
和 String
等类型。类型 InvalidType
不是其中之一。
如果你遇到这种错误:它只是说你需要声明类型:
static final String key = _Env.key;
对我来说,当我尝试将文件嵌套到较低的文件夹中时,出现此错误
lib/util/env/env.dart
这不起作用,但当我将文件位置更改为以下位置时,生成器运行:
lib/env/env.dart