Android Studio 3.1修改代码后需重建项目才生效问题咨询
我之前也碰到过这个糟心的问题!Android Studio 3.1的增量编译机制在适配旧项目时容易出bug,导致修改代码后运行还是旧结果,必须手动重建或清理才生效。给你几个亲测有效的解决办法:
禁用增量编译
在项目根目录的gradle.properties文件中添加以下配置:android.enableBuildCache=false或者在对应模块的
build.gradle中关闭增量编译:android { compileOptions { incremental = false } }增量编译的缓存有时候会出现同步异常,关闭后会强制全量编译,确保代码更新能被正确打包。
关闭Instant Run功能
打开File → Settings(Mac上是Android Studio → Preferences),找到Build, Execution, Deployment → Instant Run,把所有勾选的选项都取消掉。Instant Run在新版本中与部分旧项目的配置兼容性不佳,容易导致代码更新无法同步到运行的应用中。清理AS全局缓存并重启
点击File → Invalidate Caches / Restart,选择Invalidate and Restart选项。这个操作会清空Android Studio的全局缓存文件,很多时候缓存损坏就是导致编译异常的元凶。同步Gradle插件与Gradle版本
旧项目可能使用了与AS 3.1不兼容的Gradle插件版本。打开项目根目录的build.gradle,确保插件版本为3.1.x系列:buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.1.4' // 3.1.0至3.1.4都可以 } }同时,
gradle/wrapper/gradle-wrapper.properties中的Gradle版本要与插件匹配,比如插件3.1.x对应Gradle 4.4及以上版本:distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip修改后点击
Sync Project with Gradle Files同步项目。手动删除模块编译目录
找到每个模块下的build文件夹并删除,然后重新同步项目。有时候模块的编译输出文件没有被正确覆盖,手动删除后能强制重新生成最新的编译产物。
这些方法里,优先尝试Invalidate Caches+重启和关闭Instant Run,大部分情况下都能解决问题。如果还是不行,再逐步调整Gradle配置和编译选项。
内容的提问来源于stack exchange,提问作者Ouail Bellal

