似乎最近的 Android 4.2在安装时引入了这个错误条件,即尝试用较低版本安装 APK。在以前的 Android 版本中,人们只需通过 adb install -r <link to APK>安装旧版本的 APK 即可。出于调试的目的,我经常需要重新测试旧版本的 APK,而且 -r标志将替换旧版本 Android 中的旧版本。有没有办法忽略 [INSTALL_FAILED_VERSION_DOWNGRADE]?
adb install -r <link to APK>
-r
[INSTALL_FAILED_VERSION_DOWNGRADE]
您是否在设备上启用了多帐户(并通过 ADB 推送您的 apk) ? 如果是这样,你必须删除每个帐户的 apk。完成卸载后,您的推将是确定的。
您可以尝试使用 adb uninstall -k <package>,然后安装旧的 apk。 来自 adb 使用指南:
adb uninstall -k <package>
adb uninstall [-k] <package> - remove this app package from the device ('-k' means keep the data and cache directories)
我自己也用我的 apk 试过,它似乎对大多数数据都有效(有些数据,比如 RawContacts 没有保存)
看起来最新版本的 adb 工具有一个“允许降级标志”,这个标志在 adb 帮助中没有显示,但是在设备的“ pm”帮助中显示了。所以使用: adb install -r -d <link to apk>
adb install -r -d <link to apk>
在我的案例中,它是一个包含在我的项目中的过时的 Google Play 服务版本。我正在使用 Android Studio。我在 SDK 上运行了一个更新,并导入了更新后的库,这个错误就消失了。因此,我的建议是: 更新项目引用的最新库。
您可能是从单独的代码副本中安装的,其中的版本号高于您现在正在使用的副本。在这两种情况下,卸载当前安装的副本,或打开设置 > 应用程序,以确定安装的应用程序的版本号,并增加您的版本代码,以更高的 AndroidManifest。
我也面临着同样的问题。它可以通过以下步骤解决,这比从设备中删除任何 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
然后再次安装/运行应用程序
对于那些面临小米问题的人来说:
adb shell pm uninstall <package_name>
这可能是 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.+'
就我而言:
第一步: 跑
yarn start --reset-cache
第二步: 跑
yarn android
卸载已安装的应用程序。
检查是否更改了项目包名称, 由于包的名称,它与现有的应用程序冲突。
对我来说,只有这样才行得通:
adb install -t -r -d myapp.apk
顺便说一下,我想替换的应用程序,降级是一个系统应用程序
请参阅文档: https://developer.android.com/studio/command-line/adb
-d: Allow version code downgrade.
简单地做 adb install -d your-app.apk应该会有帮助。
adb install -d your-app.apk