2017-02-24 80 views
0

我正在进行数据库更新,我的新版本使用的是ORMLite,所以我在设备上有playstore版本,我想测试数据迁移要工作,所以连接我的设备并运行Android Studio中的应用程序,但我得到这个错误:INSTALL_FAILED_UPDATE_INCOMPATIBLE从PlayStore版本更新为AndroidStudio的新版本

Installation failed with message INSTALL_FAILED_UPDATE_INCOMPATIBLE. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.

WARNING: Uninstalling will remove the application data!

Do you want to uninstall the existing application?

this question的答案是不适用的,因为该解决方案有删除该应用程序,然后安装新版本。这个问题是关于如何避免卸载。

+0

不是我downvote,但数据库版本的变化不会导致这个问题。当您更改数据库版本时,您的应用程序将安装好。 – Sufian

+0

Duplicate - http://stackoverflow.com/questions/11891848/install-failed-update-incompatible-when-i-try-to-install-compiled-apk-on-device – Sufian

+0

它可能发生,因为APK不是使用相同的签名签名(如果您从Play商店安装了应用程序并安装具有相同包名的调试APK,则会发生这种情况)。所以你应该尝试安装签名的APK。 – Sufian

回答

0

这与您的数据库无关,这是因为您试图安装一个.apk文件,该文件的版本号小于或等于您设备上已安装的应用程序的版本号具有相同的应用程序ID。

只是增加你的versionCodegradle.build文件(或您的AndroidManifest.xml如果这就是你把它定义)和操作系统将让您安装新版本不清除数据。

如果更改versionCode没有解决问题,则很可能是由于与.apk签署冲突,如Sufian mentioned here

Android Studio中的'生成apk'选项将运行您通过某些提示来分配密钥存储库以签署.apk,这是手动方式。

你可以设置你的build.gradle文件,当你运行一个给定的风格作为你的版本时,用一个keystore自动签署你的.apk文件。你可以阅读如何做到这一点here

+0

我更改了同样的错误: versionCode 13 versionName“1.3”和数据库版本 – Ben

+0

@Ben您是否尝试安装签名的APK?确保使用用于签署上传到PlayStore的APK的相同密钥库。 – Sufian

+1

数据库版本无关紧要,这是用.apk做的,没有代码实际上还没有运行。你知道Play商店应用的versionCode是什么吗?如果不是版本代码,这很可能是Sufian正在谈论的签名问题。 – DanielLaneDC

-1

您正试图安装较旧版本。 因此,先卸载旧版本,然后尝试安装新版本。

使用OrmLiteSqliteOpenHelper.onUpgrade(...)检查版本新旧一个和写入方法对于这两个版本。 由此,您也可以迁移您的数据

+0

这就是问题,如果我卸载我可以迁移数据... – Ben

+0

作为您的数据的备份 –

+0

他想测试更新,他不能卸载。 –

-1

我面临同样的问题。我的解决方案是减少数据库版本号,使其与商店版本相对应,运行当前版本(不是商店版本),然后将数据库版本号更新为最新版本并重新运行。这样apk更新完成,调用DBHelper的UpdateUp()方法。