1

该应用程序适用于android,但不适用于桌面

[错误:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:MissingPluginException(在通道 com.tekartik.sqflite 上找不到方法 getDatabasesPath 的实现)

4

2 回答 2

1

正如评论中所指出的,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());
}
于 2021-04-09T08:07:03.547 回答
0

目前sqflite只支持Android Ios和Mac。或者,您可以使用 Hive 或 sembast。

如果你想对数据库执行查询,我建议你使用 sembast。

这两个包目前都支持所有平台,但是如果您使用 sembast,则必须包含该包sembast_web以提供 Web 支持。

套餐:

Hivehttps ://pub.dev/packages/hive

Sembasthttps ://pub.dev/packages/sembast

Sembast_webhttps ://pub.dev/packages/sembast_web

于 2021-04-07T16:05:24.863 回答