如何解决Sqlite 与 Flutter 桌面 Windows?
该应用适用于安卓,但不适用于桌面
[ERROR:Flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:MissingPluginException(No implementation fou nd 用于通道 com.tekartik.sqflite 上的 getDatabasesPath 方法)
解决方法
目前 sqflite
仅支持 Android Ios 和 Mac。
或者,您可以使用 Hive 或 sembast。
如果您想对数据库执行查询,我建议您使用 sembast。
这两个包目前都支持所有平台,但是如果您使用 sembast,则必须包含包 sembast_web
以提供网络支持。
包:
Hive
:https://pub.dev/packages/hive
Sembast
:https://pub.dev/packages/sembast
Sembast_web
:https://pub.dev/packages/sembast_web
正如评论中所指出的,sqflite_common_ffi
允许在桌面上使用 sqflite API。它不是作为 flutter 插件实现的,因为它也可以在普通的 dart VM 中运行。
您可以阅读 this 以了解如何在桌面上使用现有的 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());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。