我在flutter中尝试init mysql db文件。我使用这个代码:
static Future<void> initdb() async {
final databasePath = await getDatabasesPath();
final path = join(databasePath, 'models.db');
_database = await openDatabase(path, version: 1, onCreate: (db, version) {
return db.execute(
'CREATE TABLE models(id INTEGER PRIMARY KEY, barcode TEXT, type TEXT, brand TEXT, color TEXT, gender TEXT, price REAL, total INTEGER)',
);
});
}
依赖关系:
dependencies:
flutter_svg: 2.0.4
sqflite: 2.2.8
path_provider: 2.0.14
flutter:
sdk: flutter
在main.dart中:
void main() async{
await ModelDatabase.initdb();
runApp(MyApp());
}
我得到这个错误:
Error: Bad state: databaseFactory not initialized
同样的错误与官方文档中的示例flutter https://docs.flutter.dev/cookbook/persistence/sqlite中的示例相同
我试着运行flutter clean并重新验证缓存。也不管用。我正在使用Android Studio 2022.1.1
1条答案
按热度按时间dsekswqp1#
我已经不记得这是在哪里记录的了,但通常你应该在调用
runApp
之前使用任何插件API之前添加WidgetsFlutterBinding.ensureInitialized();
:参见What Does WidgetsFlutterBinding.ensureInitialized() do?