news 2026/7/27 17:05:57

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 构建,就不会再被缓存坑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 18:21:31

C++构建缓存加速

1、非修改序列算法 这些算法不会改变它们所操作的容器中的元素。 1.1 find 和 find_if find(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第…

作者头像 李华
网站建设 2026/7/24 11:21:41

8项YashanDB最大化策略,推动企业成功转型

在当今数据驱动的业务环境中,企业面临着如何提升数据库性能和确保数据安全的问题。尤其是在复杂的查询和数据处理场景下,数据库的有效性直接影响业务的运行效率和决策制定。 YashanDB作为一个高性能的数据库管理系统,提供了多项技术优势和功能…

作者头像 李华
网站建设 2026/7/25 15:24:26

10个YashanDB功能提升数据可视化效果

在大数据时代,有效的数据可视化已成为各行各业中的关键成功因素之一。然而,数据可视化的效果往往受限于底层数据库的性能和功能。提升数据库的功能,不仅可以加快数据处理速度,还能优化数据存取方式,从而为可视化提供更…

作者头像 李华
网站建设 2026/7/19 3:06:15

什么是Voice VLAN

文章目录为什么需要Voice VLANVoice VLAN应用场景有哪些Voice VLAN是如何工作的Voice VLAN是为用户的语音流专门划分的VLAN。 为什么需要Voice VLAN 网络中经常有数据、语音、视频等多种流量同时传输。因为丢包和时延对通话质量的影响很大,用户对语音的质量比数据或…

作者头像 李华
网站建设 2026/7/16 11:59:35

宝藏指南!AI提示工程边缘计算优化,提示工程架构师指南

宝藏指南!AI提示工程在边缘计算的优化实践:架构师必看的方法论与落地技巧 摘要/引言:当提示工程遇到边缘计算——解决"最后一公里"的AI效率难题 想象一个场景: 你在工厂车间部署了一套边缘AI系统,用于实时…

作者头像 李华