有没有什么办法可以忽略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应用程序,它应该工作正常。