似乎最新的 Android 4.2 在尝试安装较低版本的 APK 时在安装时引入了这种错误情况。在早期版本的 Android 中,可以简单地通过 adb install -r <link to APK>
. 出于调试目的,我经常需要重新测试旧的 APK;并且该-r
标志将替换旧 Android 版本中的旧版本。这里有解决方法可以忽略[INSTALL_FAILED_VERSION_DOWNGRADE]
吗?
12 回答
似乎最新版本的 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。完全卸载后,你的推送就OK了。
就我而言,它是我的项目中包含的 Google Play 服务的旧版本。我正在使用安卓工作室。我在 SDK 上运行了更新,并导入了更新后的库,该错误就消失了。所以我的建议是:更新到您的项目引用的最新库。
我也遇到了同样的问题。可以通过以下步骤解决,这比从设备中删除任何 apk 更容易 -
1) 在终端运行命令“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"
现在清理并重建应用程序,它应该可以正常工作。
尝试卸载以前安装的应用程序版本使用 -
adb uninstall com.package.name
然后再次安装/运行您的应用程序
您可能已经从版本号高于您现在正在使用的副本的代码的单独副本安装。在任何一种情况下,卸载当前安装的副本,或打开设置 > 应用程序以确定已安装应用程序的版本号,并在 AndroidManifest 中增加您的 versionCode 以更高。
这可能是 Google Play 服务依赖项的问题。
有时,情况并非如此:
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.xy 版本可以工作,并且我不再收到错误消息。此外,我可以等到我准备好之后再升级到 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 install -t -r -d myapp.apk
顺便说一句,我要替换和降级的应用程序是系统应用程序
就我而言:
第 1 步:运行
yarn start --reset-cache
第 2 步:运行
yarn android
对于面临小米问题的人:
adb shell pm uninstall <package_name>