在尝试安装较低版本的APK时,似乎最新的Android 4.2在安装时引入了此错误情况。在Android的早期版本中,只需通过adb install -r <link to APK>
即可安装较旧的APK。出于调试目的,我经常需要重新测试较旧的APK;并且-r
标志将取代旧版Android中的旧版本。这里有一个解决方法忽略[INSTALL_FAILED_VERSION_DOWNGRADE]
吗?
答案 0 :(得分:267)
似乎最新版本的adb工具有一个“允许降级标记”,未在adb帮助中显示,但它显示在设备的“pm”帮助中。所以使用:
adb install -r -d <link to apk>
答案 1 :(得分:19)
您可以尝试使用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未保存)
答案 2 :(得分:14)
您是否在设备上启用了多个帐户(并通过ADB推送apk)? 如果是这样,你必须在每个帐户中删除apk。完成卸载后,您的推送就可以了。
答案 3 :(得分:1)
就我而言,这是我项目中包含的Google Play服务的陈旧版本。我正在使用Android Studio。我在SDK上运行了更新,并导入了更新的库,并且该错误消失了。所以我的建议是:更新项目引用的最新库。
答案 4 :(得分:1)
尝试使用-
卸载以前安装的应用程序版本adb uninstall com.package.name
然后再次安装/运行您的应用
答案 5 :(得分:0)
您可能已从代码的单独副本安装,其中版本号高于您当前使用的副本。在任何一种情况下,请卸载当前安装的副本,或打开设置&gt;用于确定已安装应用的版本号的应用,并在AndroidManifest中将您的versionCode增加到更高。
答案 6 :(得分:0)
对于遇到小米问题的人:
adb shell pm uninstall <package_name>
答案 7 :(得分:0)
可能是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.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.+'
答案 8 :(得分:-1)
我也面临同样的问题。可以通过以下步骤解决,这比从设备中删除任何apk更容易 -
1)在终端上运行命令“adb logcat | grep -i version”
2)查找特定行,该行将显示在logcat的末尾 -
If CBool(InStr(1, cell.Text, "-")) Then
'hyphen exists as seen on worksheet either in .Value or .Text
Else
'hyphen does not exist as seen on worksheet
End If
3)复制当前版本(例如9109)并将其粘贴到AndroidManifest.xml中,如下所示 -
"Downgrade detected: Update version code 5011 is older than current 9109"
现在清理并重建应用程序,它应该可以正常工作。
答案 9 :(得分:-1)
就我而言:
第 1 步:运行
yarn start --reset-cache
第 2 步:运行
yarn android