该应用程序适用于android,但不适用于台式机
错误:flutter/lib/ui/ui_dart_state.cc(186)未处理的异常:MissingPluginException(对于通道com.tekartik.sqflite上的方法getDatabasesPath没有实现)
发布于 2021-04-09 16:07:04
正如评论中所指出的,sqflite_common_ffi
允许在桌面上使用sqflite API。它不是作为颤动插件实现的,因为它也可以在常规的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());
}
发布于 2021-04-08 00:05:25
目前sqflite
只支持安卓、Ios和Mac。或者,您可以使用Hive或sembast。
如果您想在数据库上执行查询,我建议您使用sembast。
这两个包目前都支持所有平台,但是如果您使用sembast,则必须包含用于web支持的包sembast_web
。
包:
Hive
:https://pub.dev/packages/hive
Sembast
:https://pub.dev/packages/sembast
Sembast_web
:https://pub.dev/packages/sembast_web
https://stackoverflow.com/questions/66971604
复制相似问题