Flutter-Desktop sqflite ffi 在发布模式下抛出错误

quo*_*oci 3 ffi dart sqflite flutter-desktop dart-ffi

我在桌面 Windows 上使用sqflite ffi作为我的数据库。我按照示例中的方式设置了所有内容。该应用程序正在调试构建,但如果我在发布模式下运行该应用程序,我会在sqfliteFfiInit(). 我该如何解决这个问题?

Invalid argument(s): Failed to load dynamic library (126)
Run Code Online (Sandbox Code Playgroud)
Future<void> init() async {
  try {
    sqfliteFfiInit();
    
  } catch (e) {
    print(e.toString());  
  }
  _databaseFactory = databaseFactoryFfi;

   String path = '${await _databaseFactory.getDatabasesPath()}\\myDB.db';
   _db = await _databaseFactory.openDatabase(path);

   final List<Map<String, dynamic>> result = await _db.query(
     'sqlite_master',
      where: 'name = ?',
      whereArgs: <String>['MyDB'],
    );

    if(result.isEmpty){
      await _db.execute('''
CREATE TABLE MyDB (
  id INTEGER PRIMARY KEY,
  name TEXT
)
''');
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 10

sqflite ffi github 页面说:

“在发布模式下,将sqlite3.dll添加到与可执行文件相同的文件夹中。”

  • 这很好用。但是使用 MSIX 导出怎么样?因为我们不能将其放置在 Windows 应用程序文件夹下。 (2认同)