我正在使用 greenDAO,并且已成功生成所有必需的类和实体,并且我可以看到我的表已创建,但是在要替换的行上放置断点后,我收到一条错误消息,告诉我“不存在这样的表错误”。
try {
appTimeUsageDao.insertOrReplace(appStats);
//} catch (DaoException e) {
} catch (Exception e) {
Log.e("Error", "Some exception occurred", e);
Log.e("APP_TAG", Log.getStackTraceString(e));
}
对我来说,这个问题与清单中的这个allowBackup标志有关。
此功能是从 api 23 开始添加的,它的作用是即使应用程序已卸载也可以恢复设备数据库,因此如果您尝试通过卸载来清除数据库,则在 Android 恢复它时将无法工作,类似于iCloud 可以工作。
我可能在文档中遗漏了解释此错误的某个地方,但我不清楚这可能是 GreenDao 3 中的问题。此外,许多用户将设置一个测试实体,而不考虑处理升级路径,因为他们已经不想保留测试表,导致出现单表恢复而新表不创建的情况。
因此,本质上,如果您只是测试,请将标志设置为 false,否则处理升级流程。 (该标志默认为 true!)
https://developer.android.com/guide/topics/data/autobackup.html https://developer.android.com/guide/topics/data/autobackup.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)