在flutter中使用sqflite时DatabaseFactory未初始化

Win*_*ief 4 sqlite dart flutter sqflite

我按照 sqflite 官方网站上的以下教程进行操作:https://pub.dev/packages/sqflite

但在这条线上

var databasesPath = await getDatabasesPath();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

发生异常。StateError(错误状态:databaseFactory未初始化databaseFactory仅在使用sqflite时初始化。使用时sqflite_common_ffi 必须databaseFactory = databaseFactoryFfi;在使用全局openDatabase API之前调用)

这些是我的依赖项:

dependecies:
  flutter:
    sdk: flutter
  sqflite: ^2.2.8
  path: ^1.8.2
Run Code Online (Sandbox Code Playgroud)

我尝试打开数据库而不从 getDatabasePath() 获取路径:

await openDatabase('demo.db', version: 1,...
Run Code Online (Sandbox Code Playgroud)

但这会在 openDatabase 上引发相同的错误。

由于我没有使用 sqflite_common_ffi 我不知道该怎么做,非常感谢您的帮助。

编辑: 我现在还尝试使用页面末尾的完整示例docs.flutter.dev/cookbook/persistence/sqlite。我认为这是某种配置错误,因为同一个项目在我的另一台机器上运行。

小智 5

dependencies:
   sqflite_common_ffi: any

//in main.dart write this:
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
Future main() async {

// Initialize FFI
sqfliteFfiInit();


 databaseFactory = databaseFactoryFfi;
 runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)