gpt4 book ai didi

Android Realm 迁移问题 : Can an older version of an app get stuck with the data files of a newer version?

转载 作者:行者123 更新时间:2023-11-30 00:58:50 25 4
gpt4 key购买 nike

当使用包管理器 API 更新 Android 应用程序时,它是否有可能进入这样一种状态:应用程序具有来自较新版本应用程序的数据文件,但旧版本的应用程序仍在安装并运行电话?

我正在诊断从客户退回的手机上使用 Realm 1.0.0 数据库开发的 Android 应用程序。由于某种原因,该应用程序似乎无法更新到我们软件的较新版本。该应用程序的较新版本具有架构 v4。该应用程序的旧版本具有架构 v3。我们不使用 Play 商店来分发升级。我们有自己的 Web 服务器,应用程序会在其中下载自身的 APK 文件升级,然后通过调用包管理器进行安装,目的如下:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(intent);

应用程序启动时崩溃并出现以下错误:

Realm on disc is newer then the one specified. V4 vs V3.

如果我查看“设置”>“应用程序”,我可以看到安装的应用程序是使用我们架构的 V3 的旧版本。然而,应用程序从内部存储加载的 .realm 文件具有属于我们应用程序较新版本的 v4 架构。

该应用程序在运行 Lollipop 5.0.2 的 Moto E2 手机上运行。

最佳答案

听起来很可能是某些用户将您的应用降级了?

Realm 不支持自动降级 Realm 文件。如果您希望允许降级,您仍然需要将架构版本提升到下一个级别:4 -> 5,并将那里的迁移指定为 3 -> 4 的倒数。

鉴于您的情况听起来不可能,因为我假设用户可以降级到任何以前的版本?

在这种情况下,您有两种选择:

1) 通过捕获该异常并向用户显示他们无法降级的警告来检测是否发生了降级。

2) 检测到发生降级并删除Realm文件。

关于Android Realm 迁移问题 : Can an older version of an app get stuck with the data files of a newer version?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39745314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com