Android Studio 3.0.1构建/运行无法检测代码变更,需先清理生效
解决Android Studio 3.0.1代码变更需先清理才生效的问题
我之前也碰到过Android Studio 3.0.1这个糟心的缓存问题——每次改完代码点绿色运行按钮,看似构建完成,但新的变更根本没生效,比如加了日志也打不出来,必须先clean项目才行,大部分时候都这样,偶尔正常完全靠运气。给你几个亲测有效的解决办法:
- 禁用增量编译:旧版AS的增量编译缓存经常出问题,你可以打开
File > Settings > Build, Execution, Deployment > Compiler,取消勾选Enable incremental compilation,然后重启Android Studio试试。 - 清理并重启Gradle守护进程:Gradle守护进程的缓存可能卡住了,在项目根目录的终端里执行命令:
- Mac/Linux:
./gradlew clean --stop - Windows:
gradlew clean --stop
执行完后再重新同步并构建项目。
- Mac/Linux:
- 关闭Instant Run:旧版的Instant Run热部署功能bug很多,很可能导致代码变更不生效。打开
File > Settings > Build, Execution, Deployment > Instant Run,取消勾选Enable Instant Run to hot swap code/resource changes on deploy,之后再运行项目就会全量构建了。 - 手动清理缓存目录:如果上面的方法都没用,就彻底清一次缓存:
- 关闭Android Studio
- 删除AS的系统缓存目录:
- Mac/Linux:
~/.AndroidStudio3.0/system/caches - Windows:
C:\Users\<你的用户名>\.AndroidStudio3.0\system\caches
- Mac/Linux:
- 删除项目根目录下的
.gradle和build文件夹 - 重新打开项目,同步Gradle后再构建
- 升级Gradle插件版本:Android Studio 3.0.1对应的3.0.1版本Gradle插件确实有不少已知的缓存问题,你可以尝试升级到同系列的稳定版,比如3.0.2。修改项目根目录的
build.gradle文件,把classpath 'com.android.tools.build:gradle:3.0.1'改成classpath 'com.android.tools.build:gradle:3.0.2',然后同步Gradle。
另外,如果你有自定义的构建任务,也检查一下有没有不小心跳过了代码编译的步骤,或者设置了过度的缓存策略,这也可能导致变更不被纳入构建。
内容的提问来源于stack exchange,提问作者Clark Battle




