【发布时间】:2019-07-22 08:39:43
【问题描述】:
我正在将一个用 Java 编写的 Android 应用迁移到 Xamarin。
旧应用程序 (Java) 将一些数据存储在 AccountManager 和 SQLite 数据库中,我希望在现有用户安装新应用程序 (Xamarin) 作为更新时将其迁移到新格式,这样他们就不会释放他们现有的数据
我正在寻找测试迁移代码,因此我在物理设备上安装了旧应用程序的一个版本,然后我将新版本(更高版本)部署到同一设备,但每次我这样做时,Visual Studio 会在安装新应用之前删除旧应用,这使得无法调试迁移代码(包含数据的 AccountManager 条目在启动前卸载旧版本时被删除)。
在发帖之前我做了一些尝试:
我已启用“在应用程序部署之间保留数据/缓存”(https://forums.xamarin.com/discussion/96902/android-app-keeps-getting-uninstalled)
启用快速部署
似乎没有任何效果 - 我只需要在部署之间保留数据,以便我的迁移代码有机会运行。
如果相关,我正在使用 Visual Studio 2017 for Mac
【问题讨论】:
-
您使用的是哪种模式?调试或发布。如果您在调试模式下部署您的应用程序。 VS 和 AS 会有不同的密钥库。
-
我进入了项目选项并指定了用于发布和调试配置的密钥库和密码(在“Android 包签名”下)我已经在调试和发布模式下运行了它。它似乎没有什么不同。我什至尝试生成一个已签名的发布 APK 并尝试“adb -r app.apk”以希望模拟升级,但新应用似乎正在破坏 AccountManager 数据,即使在 VS 之外
-
您使用的是什么类型的 Android?我的是带有 MIUI v.10.2 的 Android Q,并且操作系统在开发人员设置上具有优化功能,当禁用时,它会停止“重新安装”应用程序
-
运行 Android 6.0 的标准三星 S6 和运行 Pie 的 Pixel 2。我没有看到开发人员设置下的任何内容听起来像您描述的那样。
-
我的被称为“MIUI 优化”,因为我关闭了它,我没有任何部署问题,我想这只是我的一个特定情况
标签: android xamarin visual-studio-2017