You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

卸载App后装低版本仍报INSTALL_FAILED_VERSION_DOWNGRADE错误咨询

问题根因

该问题和Flutter构建逻辑无关,核心原因是应用未被系统从全用户空间、特殊配置分区彻底清除,属于Android系统机制导致的卸载残留,和常规卸载操作是否执行到位没有直接关系:

  • 系统默认的桌面卸载、普通adb uninstall操作,只会清除当前激活的主用户空间下的应用安装记录与数据。如果设备开启过多用户模式、被办公类应用自动创建过工作资料分区、或者应用曾经被设置为设备管理员,其他分区下留存的高版本(1.1.30)应用记录不会被同步删除。
  • 执行adb shell cmd package list packages默认仅查询当前主用户下的已安装应用列表,因此检索不到目标包;但adb shell dumpsys package [包名]会遍历设备全部分区、所有用户空间的包配置记录,因此能查到残留的高版本信息。系统安装校验阶段扫到这条高版本残留记录时,会直接判定安装低版本(1.1.29)属于非法降级操作,抛出INSTALL_FAILED_VERSION_DOWNGRADE错误。
  • 临时使用的adb install -r -d [path_to_debug_apk]方案之所以生效,是因为参数-d直接给安装器下发了允许降级安装的指令,跳过了版本号校验环节,因此能绕过残留记录的拦截,但该操作不会清除其他分区的残留记录,后续仍可能触发同类问题。
彻底修复方案
  • 第一步排查全用户空间的包残留:依次执行adb shell pm list packages --user [用户ID] [包名]排查,常见用户ID包含0(主用户)、10/11/12(工作空间/副用户),确认哪些用户ID下还留存目标应用的记录。
  • 第二步定向清除残留:对所有查到残留的用户ID执行卸载命令adb shell pm uninstall --user [对应用户ID] [包名],直到所有空间下的包记录都被清除。
  • 如果应用曾经被设置为设备管理员,需要先进入系统「设置-安全-设备管理员应用」页面,关闭对应应用的管理员权限,再重复上述卸载操作。
  • 残留全部清除后,即可正常安装1.1.29版本安装包,不会再触发版本降级报错。

内容的提问来源于stack exchange,提问作者Vincent Chan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:54:16