当我的应用程序更新时,SQLite 表丢失了,尽管我没有在 onUpgrade() 中删除它

SQLite tables lost when my app is updated though I'm not dropping it in onUpgrade()

我的应用程序版本目前正在生产中。我最近从 windows PC 切换到 Mac。

现在,当我从 Mac 发布更新的 APK 时,sqlite 数据库在更新应用程序时丢失了。即使 table 我肯定不会通过代码删除,也正在被删除。当我包含 create if not exists... 查询时,它甚至没有被创建。

源代码以外的其他因素是否会对此产生影响(例如底层 android SDK 或 JDK)?我从未在我的任何应用程序版本中启用混淆器。仅供参考,当我在应用程序中使用我们的测试服务器 (UAT) 网址时,不会出现此问题。它只发生在生产环境中。在 UAT 环境中,应用程序升级一切正常。这就是让我吃惊的地方。

一些用户正在使用现有的应用程序,他们可能需要随时升级。他们必须能够在不卸载现有应用程序的情况下进行升级。这种行为的原因可能是什么?

我的问题已经解决了。

table 的列名称被意外更改,我没有注意到。这是导致应用程序出现问题的原因,因为应用程序的基本凭据未保存到 SQLite 数据库中。现在,我已将列名称更正为其以前的名称。这解决了这个问题。在 UAT 环境中,我们有两个具有匹配列名的 APK。这就是问题只发生在生产环境中的原因。