为什么Android Studio修改代码、布局或资源后首次运行变更不生效?
问题成因
- Android Studio 4.1.1 存在官方已记录的增量构建缓存缺陷,Windows 7 系统的文件变更监听接口和AS增量编译模块的兼容性不足,修改后的代码、布局或资源文件无法被构建流程识别到变更,首次打包时仍调用旧缓存文件生成APK
- 项目体积越大,缓存文件数量越多,增量编译的文件哈希校验逻辑遗漏变更的概率越高,问题触发频率随之上升
- Apply Changes(原Instant Run)功能的后台进程偶发异常时,会直接调用已存在的旧APK安装到设备,跳过新文件的编译打包步骤
解决办法
- 临时规避方案:每次运行前依次执行菜单栏
Build -> Clean Project、Build -> Rebuild Project操作,再启动应用,无需重复运行两次 - 关闭Java增量编译优化:打开
File -> Settings -> Build,Execution,Deployment -> Compiler,取消勾选Configure on demand和Incremental compilation for Java两个选项,保存后重启Android Studio - 禁用Apply Changes功能:进入
File -> Settings -> Build,Execution,Deployment -> Deployment,取消勾选Enable Apply Changes选项,禁用热插拔功能强制全量构建 - 调整构建缓存配置:在项目根目录的
gradle.properties文件中添加如下配置,关闭全局构建缓存:
org.gradle.caching=false android.enableBuildCache=false
- 版本升级:该缓存缺陷在Android Studio 4.2.2及更高稳定版已修复,条件允许的话可以升级IDE版本,升级前注意备份项目配置避免兼容性问题
内容的提问来源于stack exchange,提问作者gibsonff
相关产品推荐
相关产品推荐

