当前位置: 首页 > news >正文

Android Studio Run 的 App 不是最新代码?一次彻底搞清缓存问题

Android Studio 运行非最新代码的解决方法。

这个问题在Android Studio + 真机 Run App场景里非常典型,本质是构建产物 / 安装策略 / Instant Run / 增量编译缓存导致的。


一、最常见原因(90% 情况)

✅ 1️⃣ APK 没有被重新安装(增量安装)

Android Studio 默认会增量 install,如果它判断 APK 没变化,可能只做hot swap或根本不 reinstall。

🔧 解决方式(强烈推荐)

每次 Run 前,强制卸载旧 App

方法 A:IDE 设置(一劳永逸)
Android Studio → Run → Edit Configurations → 选择你的 App → Deployment Target Options → 勾选 ✅ "Always install with package manager"

👉 含义:

  • 强制adb install
  • 禁用智能增量判断
  • 确保每次都是新 APK


方法 B:Run 前手动卸载(验证用)
adb uninstall your.package.name

如果卸载后再 Run 就正常了,说明之前就是安装缓存问题


二、Gradle 构建缓存导致代码未生效

✅ 2️⃣ Gradle Build Cache / Incremental 编译

Gradle 会缓存:

  • class
  • dex
  • resource
  • manifest merge 结果

🔧 推荐做法(开发期)

方式 A:Clean + Run
Build → Clean Project Build → Rebuild Project
方式 B:命令行(更彻底)
./gradlew clean assembleDebug

🚨 彻底关闭 Gradle 缓存(排查问题时用)

gradle.properties中临时加:

org.gradle.caching=false

⚠️ 不建议长期关闭,只用于定位问题。


三、Android Studio / IDE 缓存问题

✅ 3️⃣ IDE 索引 / 构建缓存错乱

🔧 标准操作
File → Invalidate Caches / Restart → Invalidate and Restart

这一步可以解决:

  • Run 代码不更新
  • 明明改了却没生效
  • R.java / BuildConfig 异常

四、Instant Run / Apply Changes 的“坑”

✅ 4️⃣ Apply Changes 并不是万能的

以下修改不会生效

  • Application / Manifest
  • 静态字段
  • Native 代码
  • Proguard / BuildConfig
  • 一些 class 初始化逻辑

🔧 正确姿势

  • ❌ 不点Apply Changes
  • 直接点 Run(绿色 ▶)

或者直接:

Settings → Build, Execution, Deployment → Disable “Apply Changes” (可选)

五、你是 RN / 多 Module / AAR 的话(重点)

结合你过往情况(RN + Android 混合工程),特别容易踩雷👇

✅ 5️⃣ 依赖的是 AAR / Module,但 AAR 没重新打

比如:

  • RN bundle
  • library module
  • 本地 AAR
🔧 解决方案
./gradlew :yourLib:clean ./gradlew :app:assembleDebug

或者直接:

./gradlew clean

六、快速自检清单(照着走)

如果我在你机器前,我会按这个顺序做:

  1. adb uninstall 包名
  2. ✅ 勾选Always install with package manager
  3. Build → Clean Project
  4. File → Invalidate Caches / Restart
  5. ✅ 不用 Apply Changes,直接 Run

做到第 2 步,99% 已解决。


七、结论(一句话)

Android Studio 并不是“用的旧代码”,而是它“聪明过头了”。

强制 reinstall + clean 构建,就不会再被缓存坑。

http://www.jsqmd.com/news/323126/

相关文章:

  • 提示工程架构师必知:AI提示系统设计的常见问题与解决方案
  • 编写一个Python脚本自动下载壁纸
  • 合作共建模式:高校如何与企业联合打造5G创新实验室
  • 测试111
  • 『搜店铺功能+跨境店铺装修功能』优化 | Tigshop JAVA开源商城系统v5.8.14正式发布!
  • 进阶技巧与底层原理
  • Spark调优技巧:如何提升大数据作业性能
  • 告别闲置:了解坚果二手投影仪回收流程与价值
  • 寒假学习笔记1.29
  • 数据结构---ST表
  • AI系统架构设计:AI应用架构师的10年实战经验
  • 专业回收坚果二手投影仪,给旧设备一个新价值
  • JavaScript JSON
  • C++命名空间使用规范
  • 社会网络仿真软件:NodeXL_(13).NodeXL与其他软件的集成
  • JavaScript String
  • Highcharts 环境配置指南
  • 信号处理仿真:信号处理基础_(9).常见信号处理算法
  • C++构建缓存加速
  • About Me
  • 代码生成优化技术
  • HoRain云--揭秘HTTP并发限制与线程池优化 - 详解
  • C++代码动态分析
  • 深圳超高住宅楼
  • DeepSeek写的论文AI率太高?用这个方法10分钟降到15%以下
  • 游戏与图形界面(GUI)
  • 8个提升YashanDB用户体验的设计原则与方法
  • GO 从 0 到 1 设计高并发文章互动系统:点赞、收藏、阅读的工程化实践
  • 8项最佳实践,优化YashanDB的演进与升级策略
  • 完整教程:23、数据结构:树与二叉树的概念、特性及递归实现