我正在用flutter制作一个windows桌面端查词应用。需要用到sqlite3数据库,于是使用了sqflite_common_ffi。
debug模式下(flutter run)没有问题,但当我(flutter build windows)后,双击生成的exe文件,一旦进入需要使用数据库的页面(调用 sqfliteFfiInit(); databaseFactory = databaseFactoryFfi;以初始化sqlite3的页面),便出现灰屏症状。
由于仅仅是release版本出现故障,对比release文件,结合网上资料,注意到release中缺失了sqlite3.dll这个重要文件。
sqlite3.dll
是一个动态链接库(Dynamic Link Library)文件,用于提供 SQLite 数据库功能给应用程序。
看来这是flutter构建项目时出现的bug,我们必须补全该文件。
于是我在D盘搜sqlite3.dll,正好威力导演(视频剪辑软件)有一个sqlite3.dll,便把它复制到release中(exe文件同级)再次运行,灰屏解决,程序正常。