Android Studio运行后代码未生效,无Gradle构建过程求助
这种情况我之前维护老项目时碰到过好几次,结合你描述的现象和给出的项目级Gradle配置,大概率是以下几个原因导致的,你可以逐个排查:
Instant Run 特性异常(最常见诱因)
你用的Gradle插件3.1.0对应Android Studio 3.x版本,这个版本的Instant Run(即时运行)很容易出现状态异常。它本来是为了加速部署,但一旦缓存或运行状态出错,就会跳过构建流程直接安装之前的旧APK。
解决方法:打开File > Settings > Build, Execution, Deployment > Instant Run,取消勾选Enable Instant Run to hot swap code/resource changes on deploy,然后执行Build > Clean Project再Build > Rebuild Project,之后重新运行应用。Gradle或项目缓存损坏
本地的Gradle缓存、Android Studio的缓存如果损坏,会导致构建系统误判代码没有变化,直接跳过构建步骤。
解决方法:- 点击
File > Invalidate Caches...,选择Invalidate and Restart,让AS清理缓存并重启; - 手动删除项目根目录下的
.gradle文件夹、项目根目录和各Module下的build文件夹,然后点击工具栏的Sync Project with Gradle Files重新同步。
- 点击
Gradle插件与Kotlin版本不兼容
你配置的Kotlin版本1.2.30和Gradle插件3.1.0存在适配隐患,老版本的组合容易出现构建流程异常。另外如果你的Android Studio版本和Gradle插件版本不匹配(比如用高版本AS打开老插件项目),也会导致构建逻辑紊乱。
解决方法:尝试升级Gradle插件到同系列的稳定版(比如com.android.tools.build:gradle:3.1.4),同时将Kotlin版本升级到兼容的1.3.72,修改后重新同步项目再运行。运行配置被错误修改
有可能你的Run/Debug配置被改成了直接安装指定APK,而非构建最新版本。
解决方法:打开Run > Edit Configurations,找到你的App运行配置,切换到Deployment标签页,确保选择的是Default APK(默认选项),而不是手动指定的本地APK或App Bundle。Gradle配置存在语法或依赖错误
你给出的buildscript依赖里有classpath "or...",看起来是配置没粘贴完整。如果项目级或模块级的build.gradle存在语法错误、依赖缺失,Gradle可能会静默终止构建,导致AS fallback到之前的旧APK。
解决方法:检查所有build.gradle文件的语法,补全缺失的依赖配置,同步时留意控制台的报错信息,根据提示修复问题。
内容的提问来源于stack exchange,提问作者J.Doe

