有没有什么办法可以忽略Androiddebugging桥的应用程序安装INSTALL_FAILED_VERSION_DOWNGRADE?

看起来最近的Android 4.2在安装时尝试安装较低版本的APK时出现了此错误情况。 在以前的Android版本中,只需通过adb install -r <link to APK>即可安装较旧的APK。 出于debugging目的,我经常需要重新testing旧的APK; 而-r标志将取代旧版Android版本中的旧版本。 有没有办法在这里忽略[INSTALL_FAILED_VERSION_DOWNGRADE]

看来最新版本的adb工具有一个“允许降级标志”,adb帮助中没有显示,但是它显示在设备上的“pm”帮助中。 所以使用: adb install -r -d <link to apk>

您可以尝试使用adb uninstall -k <package> ,然后安装较旧的apk。 从adb使用指南:

  adb uninstall [-k] <package> - remove this app package from the device ('-k' means keep the data and cache directories) 

我已经用我的apk自己试了一下,它似乎适用于大多数数据(一些数据像RawContacts没有保存)

您是否在您的设备上启用了多个帐户(并通过ADB推送您的apk)? 如果是这样,你必须删除每个帐户中的apk。 完成卸载后,您的推送将会正常。

在我的情况下,这是我的项目中包含的一个过时的Google Play服务版本。 我正在使用Android Studio。 我在SDK上运行了一个更新,并导入了更新后的库,那个错误消失了。 所以我的build议:更新到您的项目引用的最新库。

您可能已经从版本号高于您正在使用的副本的代码的单独副本安装。 在这两种情况下,请卸载当前安装的副本,或打开“设置”>“应用程序”以确定已安装应用程序的版本号,并在AndroidManifest中将版本代码增加到更高。

我也面临同样的问题。它可以解决以下步骤比从设备上删除任何apk更容易 –

1)在terminal上运行命令“adb logcat | grep -i version”

2)寻找特定的行,这将显示在logcat的结尾 –

 "Downgrade detected: Update version code 5011 is older than current 9109" 

3)复制当前版本(例如9109),并将其粘贴到AndroidManifest.xml中,如下所示 –

 android:versionCode="9109" 

现在清理并重build应用程序,它应该工作正常。