android – 如何在执行InsertOrReplace时解决greenDA“没有这样的表存在错误”?

我正在使用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

转载注明原文:android – 如何在执行InsertOrReplace时解决greenDA“没有这样的表存在错误”? - 代码日志