Android 仿真程序: 安装错误: INSTALL _ FAILED _ VERION _ DOWNGRADE

我目前正在尝试编译和测试一个小型的 Android 应用程序。

我正在使用 Eclipse,并且已经安装了 SDK 4.2(Api Level 17)。 我准备好了

<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="8" />

尽管我也尝试过不同的数值(例如17/17)。

我不使用任何 GoogleAPI 函数,也不使用 API 级别8中没有的函数。或者至少在这方面我没有得到任何编译错误或警告。

当我编译这个项目并在运行 Android 2.2.1的真实设备上运行时,应用程序运行良好。然而,当我尝试用 Android 4.2,Api Level 17在模拟器(Android Virtual Device)上运行应用程序时,我得到了以下错误:

[2012-12-10 21:10:29 - SoftKeyboard] Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
[2012-12-10 21:10:29 - SoftKeyboard] Please check logcat output for more details.
[2012-12-10 21:10:29 - SoftKeyboard] Launch canceled!

然而 Logcat 是空的。我真的不知道,这个错误甚至意味着什么..。

180095 次浏览

这意味着您正在尝试安装一个与已经安装在模拟器上的应用程序具有相同 packageName 的应用程序,但是您正在尝试安装的应用程序具有较低的版本代码(您的版本号的整数值)。

您可能已经从代码的单独副本安装,其中的版本号高于您现在正在使用的副本。不管是哪种情况:

  • 卸载当前安装的副本

  • 或者打开手机的设置 > 应用程序管理器来确定已安装应用程序的版本号,然后在 AndroidManifest 中将 <manifest android:versionCode增加到更高。

  • https://stackoverflow.com/a/13772620/632951

首先从模拟器卸载您的应用程序:

adb -e uninstall your.application.package.name

然后再次尝试安装应用程序。

这是在我的项目中发生的,因为我使用了 XML 资源来设置版本代码。

AndroidManifest.xml:
android:versionCode="@integer/app_version_code"


app.xml:
<integer name="app_version_code">64</integer>

这在以前的 adb版本中不是问题,但是,从 platform-tools r16开始,这个问题不再被解决为适当的整数。您可以使用 adb -r强制重新安装,也可以通过在清单中使用文本完全避免这个问题:

android:versionCode="64"

当试图在 Play 存储中的已签名版本 APK 之上安装调试/未签名 APK 时,可能会发生这种情况。

H:\>adb install -r "Signed.apk"
2909 KB/s (220439 bytes in 0.074s)
pkg: /data/local/tmp/Signed.apk
Success


H:\>adb install -r "AppName.apk"
2753 KB/s (219954 bytes in 0.078s)
pkg: /data/local/tmp/AppName.apk
Failure [INSTALL_FAILED_VERSION_DOWNGRADE]

解决这个问题的方法是使用 卸载,然后从 IDE 重新安装或重新运行它。

您也可以考虑添加 -d标志到 adb 安装。它应该忽略这个错误。

adb install -r -d abc.apk

当我将一个 Android Studio 应用程序导入 Eclipse 时,这种情况发生在我身上。

我发现当从 android 工作室项目导入时,andoridManif.xml 文件需要稍微修改一下。我创建了一个新的测试项目,并复制了标题以使其匹配。瞧,问题解决了。

这个错误出现在我的 android 项目中,包含多种 gfx 文件。最后,不接受清单文件中的任何更改。

由于我对 Android 设备缺乏了解,我忘记了我的测试设备还有第二个用户。这个用户也有一个安装版本的我的应用程序,所以我也必须删除这个用户帐户的应用程序,它的工作。

根据 sdk src 代码... android-22 android 内容下午 PackageManager.java

/**
* Installation return code: this is passed to the {@link IPackageInstallObserver} by
* {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)} if
* the new package has an older version code than the currently installed package.
* @hide
*/
public static final int INSTALL_FAILED_VERSION_DOWNGRADE = -25;

如果新软件包的版本代码比当前安装的软件包的版本代码旧。

安装 _ 失败 _ 版本 _ 下级

所有的 Android 应用程序都有一个软件包名称。包名称唯一地标识设备上的应用程序。如果相同的 PackageName作为应用程序,已经在设备上的 安装然后这个 错误显示。

  1. 您可以从 首先是装置卸载应用程序,然后 然后装上新的。
  2. 您可以在每次发布新版本 时简单地将数字增加1。

在棉花糖里,我犯了这个错误,

Installation error: INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE
Please check logcat output for more details.
Launch canceled!

寻找解决方案,我寻找并来到这里。 我删除了这个应用程序,但是在 Nexus6中仍然存在这个问题,

Settings > Apps > [My app name] have to removed for all user.

我也遇到了同样的问题。当我试图在我的机器人设备 不是模拟器中运行时,我出现了错误。

sudo ionic run android

我可以通过跑步来解决这个问题

adb uninstall com.mypackage.name

你可以试试这个: adb install -r -d -f your_Apk_path

一直折磨我的是,我不知道这个应用程序是为我的客户账户安装的(尽管我已经为其他账户卸载了它)。.)

所以我在应用程序管理器中搜索应用程序,然后简单地为所有用户点击卸载

enter image description here

只需卸载前一个 APK 并安装更新的 APK

这可能是 Google Play Services 依赖性的问题,而不是实际的应用程序版本问题。

有时,情况并非如此:

A)已经安装了现有版本的应用程序,不管是否更新 B)有一个现有版本的应用程序安装在另一个用户帐户上的设备

所以错误消息是伪造的。

就我而言,我有:

implementation 'com.google.android.gms:play-services-maps:16.0.0'
implementation 'com.google.android.gms:play-services-location:16.0.0'
implementation 'com.google.android.gms:play-services-gcm:16.0.0'

但当我尝试

implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.android.gms:play-services-gcm:17.0.0'

我得到了 androidX 相关的错误,因为我还没有升级到 androidX,并没有准备这样做。我发现使用最新的16.x。Y 版本可以正常工作,我不再收到错误消息。此外,我可以等到以后当我准备好了,升级到 androidX。

implementation 'com.google.android.gms:play-services-maps:16.+'
implementation 'com.google.android.gms:play-services-location:16.+'
implementation 'com.google.android.gms:play-services-gcm:16.+'

我也有同样的问题

    adb shell pm install --user <userId> test.apk

出于某种原因,屏幕上没有图标。这是一个调试版本,所有其他的连续安装都不能正常工作。简单地卸载软件包会有所帮助。

     adb uninstall com.package.name

做以下事情:

  1. 只需卸载以前版本的应用程序
  2. 重新运行命令
  3. 享受:)

从设备卸载当前 apk,然后运行

sudo adb uninstall com.package.name

这是通过 PC 对 卸载 apk的命令。

然后重试构建