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

Android应用清除存储后回退至旧版本代码问题求助

问题描述
  • 开发Android应用时遇到异常:修改代码后运行能看到最新效果,但清除应用存储后,应用会自动回退到旧版本代码状态:
    • 场景1:把按钮背景色从黄色改成蓝色,运行后显示正常;但清除应用存储再打开,按钮又变回黄色,必须重新编译运行才会恢复蓝色。
    • 场景2:修改时间格式化代码,从旧代码:
      val f = SimpleDateFormat("hh:mm a", Locale.getDefault())
      
      改为:
      val f = SimpleDateFormat("hh:mm", Locale.getDefault())
      
      首次运行后时间格式已去掉AM/PM;但清除存储切换账号登录后,时间格式又变回带AM/PM的旧版本,期间代码完全没修改。
  • 开发阶段没加退出登录功能,测试不同账号必须清除存储,每次都要重新编译,效率极低。
可能的原因及解决办法

1. 关掉Instant Run/Apply Changes功能

Android Studio的Instant Run(新版叫Apply Changes)是为了快速更新代码,但有时候会把旧代码片段留在设备缓存区,清除应用存储时就会触发这些残留代码运行。

  • 操作步骤:
    • 打开Android Studio,进入File > Settings > Build, Execution, Deployment > Instant Run(新版在Build, Execution, Deployment > Deploy里找Apply Changes相关选项)
    • 取消勾选Enable Instant Run to hot swap code/resource changes on deploy(或对应新版的启用选项)
    • 点Apply后重启Android Studio,重新编译运行应用。

2. 清理构建缓存并重新编译

Android Studio的构建缓存可能存了旧的编译产物,导致清除存储后旧代码被加载。

  • 操作步骤:
    • 点击顶部工具栏的Build > Clean Project
    • 再点Build > Rebuild Project
    • 重新运行应用到设备上。

3. 彻底卸载应用后重装

设备上可能残留了旧版本的APK(比如debug和release版本混存,或者旧缓存APK),清除存储时触发了旧APK启动。

  • 操作步骤:
    • 在设备上长按应用图标,选卸载,确认完全删掉
    • 回到Android Studio,点Run重新编译安装。

4. 排查本地存储的配置残留

虽然你是硬编码修改的代码,但如果之前有把UI配置(比如按钮颜色、时间格式)存到SharedPreferences或本地文件里,清除存储时可能误读了旧配置?可以排查下:

  • 检查代码里有没有把按钮颜色、时间格式字符串写入SharedPreferences或本地文件的逻辑
  • 如果有,要么同步更新这些存储的配置,要么在应用启动时强制用硬编码的新配置覆盖旧的。

内容的提问来源于stack exchange,提问作者Het Shukla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 19:10:07