在模拟器中使用ObjectBox提供的 默认创建方式 创建数据库时,会报objectbox: (30 "Read-only file system") 错误
store = openStore() // objectbox: (30 "Read-only file system")
原因是在默认方式下,会在模拟器的 /system 目录下创建数据库文件,而system文件夹权限只读,因而导致数据库创建失败
解决方法:创建方法中,directory参数传入自定义的创建文件夹路径
// flutter 项目
Future<void> init() async {
// getApplicationSupportDirectory() 方法需添加 path_provider
final dbFolder = await getApplicationSupportDirectory().then((value) {
if(value.path.contains('files')) {
return value.path.replaceFirst('files', 'databases');
} else {
return value.path;
}
});
store = openStore(directory: dbFolder); // 自定义文件夹路径
}