Android Studio 3.1点击运行直接启动不编译,修改不生效求助
嘿,这个问题我之前帮不少开发者排查过,大概率是Android Studio的增量编译缓存出问题了,或者是运行配置里的设置不对。给你几个一步步排查的方案,应该能解决:
可能的原因与解决方案
1. 增量编译缓存紊乱
Android Studio更新版本后,旧的增量编译缓存很容易出现异常,导致它误判代码没有变化,直接跳过编译步骤。你可以这么处理:
- 先点击顶部菜单栏的
Build->Clean Project,接着选择Rebuild Project,完成后再运行一次项目试试。 - 如果还是不行,就手动清理缓存目录:
- 先关闭Android Studio
- 找到项目根目录下的
.gradle、.idea文件夹,以及app/build目录,全部删除 - 重新打开Android Studio,让它重新同步项目并生成新的缓存文件
2. 运行配置的部署选项错误
有时候运行配置里的部署设置被误改,导致只启动已安装的APK而不重新编译:
- 点击顶部工具栏的运行配置下拉框(就是显示当前运行模块的那个框),选择
Edit Configurations... - 在弹出的配置窗口里,找到你的App运行配置,切换到
General标签页 - 检查
Deploy选项,确保选择的是Default APK或者APK from app bundle,别选Nothing这类跳过编译的选项 - 顺便检查下
Launch Options里的Launch是否设置为Default Activity(或者你指定的目标Activity),这个虽然和编译无关,但也能避免其他启动问题
3. Gradle插件与Android Studio版本不匹配
你更新了support库等依赖,但Gradle插件版本可能没跟上Android Studio 3.1的要求:
- 打开项目根目录下的Project级
build.gradle文件,检查com.android.tools.build:gradle的版本,Android Studio 3.1对应的插件版本应该是3.1.0~3.1.4之间 - 同时查看
gradle/wrapper/gradle-wrapper.properties里的distributionUrl,对应插件3.1.x的Gradle版本应该是4.4~4.7,比如https\://services.gradle.org/distributions/gradle-4.4-all.zip
4. 即时运行(Instant Run)的bug
Android Studio 3.x的即时运行功能偶尔会出问题,导致代码修改无法同步到运行的应用:
- 关闭即时运行试试:点击
File->Settings(Mac用户是Android Studio->Preferences),找到Build, Execution, Deployment->Instant Run,取消勾选Enable Instant Run to hot swap code/resource changes on deploy - 重启Android Studio后再运行项目,看看修改是否能正常生效
另外,你提到重建后运行修改会生效但还是直接启动,这说明重建后缓存是正常的,但后续修改又触发了缓存误判,所以优先试试清理缓存和关闭即时运行这两个方案,这俩解决了大部分这类问题。
内容的提问来源于stack exchange,提问作者rupinderjeet
相关产品推荐
相关产品推荐

