當使用包管理器API更新Android應用程序時,它有可能進入應用程序從較新版本的應用程序獲取數據文件的狀態,但應用程序的舊版本仍然安裝並正在運行電話?Android Realm遷移問題:舊版本的應用程序是否會卡住更新版本的數據文件?
我正在診斷從使用Realm 1.0.0數據庫開發的客戶返回的手機上的Android應用程序。由於某種原因,該應用似乎無法更新爲我們軟件的較新版本。新版本的應用程序有一個架構v4。舊版本的應用程序具有架構v3。我們不使用Play商店分發升級。我們有自己的網絡服務器,其中自身的應用程序下載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手機上運行。
應用程序的降級應該是不可能的。它運行在一個自助式設備上,它實際上阻止了對USB數據端口的訪問,從而防止ADB側面加載。應用程序升級不是通過Play商店分發,而是通過我們自己的雲基礎架構分發的,沒有身份驗證令牌就無法訪問,並且一旦升級成功,下載的APK就會從文件系統中刪除。有點神祕! –