Flutter如何配置和使用flutter_dotenv环境变量

在Flutter项目中配置flutter_dotenv时遇到了问题,按照文档添加了.env文件并在pubspec.yaml中声明了依赖,但在代码中通过DotEnv().env[‘KEY’]获取环境变量时总是返回null。已经确认.env文件路径正确且包含有效的键值对,也调用了DotEnv().load()方法。请问还需要注意哪些配置细节?如何确保环境变量能正确加载?

2 回复

在Flutter中使用flutter_dotenv管理环境变量,步骤如下:

  1. 添加依赖
dependencies:
  flutter_dotenv: ^5.0.2
  1. 创建.env文件(项目根目录)
API_URL=https://api.example.com
API_KEY=your_api_key_here
  1. 配置pubspec.yaml
flutter:
  assets:
    - .env
  1. 在main.dart中初始化
import 'package:flutter_dotenv/flutter_dotenv.dart';

void main() async {
  await dotenv.load(fileName: ".env");
  runApp(MyApp());
}
  1. 使用环境变量
String apiUrl = dotenv.get('API_URL');
String apiKey = dotenv.get('API_KEY');

注意事项:

  • .env文件不要提交到版本控制
  • 可创建.env.production等不同环境文件
  • 使用dotenv.get()时确保变量已存在,或用dotenv.maybeGet()避免异常

这样就完成了环境变量的配置和使用!

更多关于Flutter如何配置和使用flutter_dotenv环境变量的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中配置和使用flutter_dotenv环境变量,可以安全地管理敏感信息(如API密钥)。以下是详细步骤:

1. 添加依赖

pubspec.yamldependencies 下添加:

dependencies:
  flutter_dotenv: ^5.1.0

运行 flutter pub get 安装。

2. 创建环境文件

在项目根目录创建 .env 文件(确保添加到 .gitignore),并定义变量:

API_KEY=your_api_key_here
BASE_URL=https://api.example.com

3. 加载配置

main.dartmain() 函数中初始化:

import 'package:flutter_dotenv/flutter_dotenv.dart';

Future<void> main() async {
  await dotenv.load(fileName: ".env"); // 加载文件
  runApp(MyApp());
}

4. 使用变量

通过 dotenv.get('KEY')dotenv.env['KEY'] 获取值:

String apiKey = dotenv.get('API_KEY');
String baseUrl = dotenv.get('BASE_URL');

5. 可选配置

  • 自定义文件路径:使用 fileName: "config/.env" 指定路径。
  • 空值处理dotenv.get('KEY', fallback: 'default') 设置默认值。
  • 验证变量:在 load 后调用 dotenv.isEveryDefined(['KEY1', 'KEY2']) 检查变量是否存在。

注意事项

  • 安全:切勿提交 .env 到版本控制。
  • 热重载:修改 .env 后需重启应用(非热重载)。

示例完整代码:

// main.dart
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

Future<void> main() async {
  await dotenv.load();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text('API Key: ${dotenv.get('API_KEY')}'),
        ),
      ),
    );
  }
}

通过以上步骤,即可安全管理环境变量。

回到顶部