该应用程序适用于android,但不适用于桌面
[错误:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:MissingPluginException(在通道 com.tekartik.sqflite 上找不到方法 getDatabasesPath 的实现)
该应用程序适用于android,但不适用于桌面
[错误:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:MissingPluginException(在通道 com.tekartik.sqflite 上找不到方法 getDatabasesPath 的实现)
正如评论中所指出的,sqflite_common_ffi
允许在桌面上使用 sqflite API。它不是作为颤振插件实现的,因为它也可以在常规 dart VM 中工作。
您可以阅读本文以了解如何在桌面上使用现有的 sqflite 代码。但由于解释多于添加链接总是更好,以下是基本步骤:
首先添加依赖:
dependencies:
sqflite_common_ffi:
然后在运行您的应用程序之前初始化 ffi:
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
import 'package:sqflite/sqflite.dart';
Future main() async {
if (Platform.isWindows || Platform.isLinux) {
// Initialize FFI
sqfliteFfiInit();
// Change the default factory
databaseFactory = databaseFactoryFfi;
}
runApp(MyApp());
}
目前sqflite
只支持Android Ios和Mac。或者,您可以使用 Hive 或 sembast。
如果你想对数据库执行查询,我建议你使用 sembast。
这两个包目前都支持所有平台,但是如果您使用 sembast,则必须包含该包sembast_web
以提供 Web 支持。
套餐:
Hive
:https ://pub.dev/packages/hive
Sembast
:https ://pub.dev/packages/sembast
Sembast_web
:https ://pub.dev/packages/sembast_web