当使用包管理器API更新Android应用程序时,它是否有可能进入一种状态,即应用程序拥有更新版本的应用程序中的数据文件,而旧版本的应用程序仍在安装并在手机上运行?
我正在诊断一款手机上的Android应用程序,这款手机是从一个用户那里得到的,该应用程序是使用王国1.0.0数据库开发的。由于某种原因,该应用程序似乎未能更新到我们软件的更新版本。新版本的应用程序有一个模式v4。该应用程序的旧版本有模式v3。我们不使用游戏商店分发升级。我们有自己的web服务器,应用程序下载APK文件升级本身,然后通过调用Package来安装这些服务器,目的如下:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);当应用程序启动时,它会出现以下错误:
磁盘上的领域比指定的新。V4对V3.
如果我查看Settings > Apps,我可以看到安装的应用程序是使用我们模式的V3的旧版本。然而,应用程序从内部存储加载的.realm文件有一个属于我们应用程序更新版本的v4模式。
该应用程序运行在Moto E2手机上,运行的是Lollipo5.0.2。
发布于 2016-09-29 12:22:41
听起来像是某个用户降低了你的应用程序的等级吗?
领域不支持自动降级领域文件。如果您希望允许降级,则仍然需要将模式版本提高到下一个级别: 4 -> 5,并将那里的迁移指定为3->4的倒数。
考虑到您的场景,这听起来是不可能的,因为我假设用户可以降级到以前的任何版本?
在这种情况下,您有两个选择:
1)通过捕获该异常来检测降级是否发生,并向用户显示他们不能降级的警告。
2)检测降级发生并删除领域文件。
https://stackoverflow.com/questions/39745314
复制相似问题