Android Studio安装失败,因为该设备已有更新版本

时间:2016-07-15 12:15:11

标签: android android-studio apk version upgrade

我们已经编写了一个新版本的Android应用程序来升级旧版本,但是想要在升级之后首次运行旧应用程序SharedPreferences中提取登录用户名,然后使用新数据模型覆盖整个事物。新代码库的build.gradle指定了更新的versionName和versionCode,但是当我们尝试从Android Studio运行到安装了旧应用程序的设备时,我们会出现一个对话框,其中包含以下错误消息:

Installation failed since the device already has a newer version of this application.
In order to proceed, you have to uninstall the existing application.

WARNING. Uninstalling will removed the application data!

Do you want to uninstall the existing application?

[OK] [Cancel]

显然,如果我们接受,它会删除旧应用程序以及所有用户数据,但我们无法达到预期目标。

无法在互联网上找到有关此问题的任何内容

error message

OLD APP build.gradle:

versionCode 1
versionName '1.4.1'

新APP build.gradle:

versionCode 2
versionName '2.0.0'

6 个答案:

答案 0 :(得分:0)

为了进行测试,您可以将版本代码更改为设备中当前安装的版本代码。

答案 1 :(得分:0)

我相信这个错误正在发生,因为您的旧APP比新应用的versionCode更高。

因此,如果与旧版本的API相比,您必须将新应用中的versionCode更新为更高(或至少相等)的值。

在新应用中:

build.grade

android {
  ...
  defaultConfig {
    ...
    versionCode 2
    versionName "1.1"
  }
  ...
}

如果你的oldVersion是在Eclipse中构建的,那么versionCode可能是在AndroidManifest.xml中定义的

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="string"
      android:versionCode="integer"
      android:versionName="string"
        . . .
</manifest>

答案 2 :(得分:0)

@alex,Update&#34; versionCode&#34; ,&#34;版本名称&#34;在build.gradle中。完成清洁项目并重建后。许多时间都没有删除所有数据。

答案 3 :(得分:0)

啊,看起来旧开发人员的一些gradle脚本在构建时覆盖了版本编码,数字要高得多......但现在使用非常高的数字我得到了INSTALL_FAILED_UPDATE_INCOMPATIBLE! :(

答案 4 :(得分:0)

正如上面的评论之一所提到的,这完全是因为build.gradle中的versionCode 我也有同样的问题。我的旧应用程序的版本代码为7009,而新应用程序的版本代码为7010。但是,旧应用程序的版本代码在构建期间已更改(7009只是基本的apk代码),因此我将versionCode更改为17010时,比7009强大得多,我可以在不卸载的情况下安装上一个新应用。

要确认,也许只是尝试从旧应用程序在控制台中记录versionCode,并确保新版本代码大于此版本。

答案 5 :(得分:0)

就我而言,我的设备上有多个用户。该应用已为所有用户安装。所以我必须为所有这些人删除它。

相关问题