我正在构建一个应用程序,它使用平方米^2.0.2将数据存储为本地数据库。
一切正常,但是在更新设备上的应用程序时出现了问题:--所有数据都丢失了。似乎一旦升级或重新安装应用程序,数据库就会被删除。在Android仿真器上,它的行为是一样的。
我已经尝试过在AndroidManifest.xml,中添加android:allowBackup="true",即使--就像文档声明的那样--应该备份数据库,它仍然不能工作。
由于数据库结构没有更新,但只有实际的颤振应用程序才是,所以数据库版本应该保持为1 (?)。
static Future<Database> init() async {
WidgetsFlutterBinding.ensureInitialized();
final database = openDatabase(
join(await getDatabasesPath(), 'myDatabase.db'),
onCreate: (db, version) {
return db.execute(
'CREATE TABLE myOrders (id TEXT PRIMARY KEY, name TEXT, quant INTEGER)',
);
},
version: 1,
);
return database;
}上面的代码初始化我的DB,join()返回折叠路径:/data/user/0/com.example.myapp/databases/myDatabase.db
不幸的是,这并没有帮助:https://stackoverflow.com/a/62845264/11442598
我是不是遗漏了什么?任何帮助都是非常感谢的。
发布于 2022-04-21 08:55:17
问题解决了。
首先,我尝试使用提供程序来确保每次数据库都使用正确的路径。这并不奏效,但对iOS 按建议 方辉石来说,这仍然是一个很好的实践。
下一步是将数据库重命名为其他内容,可能还有一个DB (?)实例。
然后我删除并下载了我的安卓仿真器,选择了一个有安装了Google Play的。
最后,我添加了
<application android:allowBackup="true"/>到AndroidManifest.xml中的字符串
我在所有这些操作之间运行了一个flutter clean和flutter pub get。
经过几次尝试,数据不再丢失。
https://stackoverflow.com/questions/71872346
复制相似问题