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 构建,就不会再被缓存坑。