You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Gradle构建启动前长时间停滞问题求助

解决Gradle构建启动阶段停滞问题

问题现象

  • 构建过程本身速度正常,但启动阶段会闲置等待10-60秒,期间CPU处于空闲状态
  • 执行gradle --debug时,进程卡在Evaluate settings阶段,重复输出守护进程地址注册表的锁获取/释放日志,每10秒循环一次

关键日志分析

停滞时重复输出的日志片段:

2023-10-05T07:17:11.293+0200 [DEBUG] [org.gradle.internal.operations.DefaultBuildOperationRunner] Build operation 'Evaluate settings' started
2023-10-05T07:17:11.293+0200 [DEBUG] [org.gradle.internal.locking.LockFileReaderWriter] Lockfiles root: C:\dev\Android\Projects\go-eLocal\gradle\dependency-locks
2023-10-05T07:17:19.404+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-10-05T07:17:19.404+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-10-05T07:17:19.405+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
2023-10-05T07:17:19.405+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
2023-10-05T07:17:19.405+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on daemon addresses registry.
2023-10-05T07:17:19.406+0200 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.

从停滞前的日志可以确认,阻塞发生在Build operation 'Evaluate settings' started之后,与LockFileReaderWriter的锁操作直接相关。

当前Gradle配置

android.debug.obsoleteApi=true
android.defaults.buildfeatures.buildconfig=true
android.enableJetifier=false
android.nonTransitiveRClass=true
android.useAndroidX=true
org.gradle.vfs.watch=true
org.gradle.jvmargs=-XX:+UseParallelGC\
org.gradle.configuration-cache=false
org.gradle.configuration-cache.problems=warn
org.gradle.caching=true
org.gradle.parallel=true

环境信息

  • 项目包含4个子模块
  • 设备配置:16核CPU(16+8)、32GB内存、SSD,排除硬件性能问题
  • 问题始于数月前,无法明确触发原因

解决方案尝试

1. 清理Gradle守护进程

停止所有运行中的Gradle守护进程,避免旧进程持锁导致阻塞:

gradle --stop

同时删除本地Gradle缓存目录:

  • Windows路径:C:\Users\<你的用户名>\.gradle\caches 和 C:\Users\<你的用户名>\.gradle\daemon
  • 重启IDE后重新执行构建

2. 禁用文件系统监控(VFS Watch)

Windows环境下Gradle的VFS监控可能存在兼容性问题,尝试关闭该功能:
在gradle.properties中修改配置:

org.gradle.vfs.watch=false

3. 重置依赖锁文件

日志多次提及gradle/dependency-locks目录,尝试删除该目录下所有锁文件,然后重新生成依赖锁:

gradle dependencies --write-locks

4. 补全并优化Gradle JVM参数

当前org.gradle.jvmargs配置不完整,调整为更适合大内存设备的参数:

org.gradle.jvmargs=-Xmx16G -XX:+UseG1GC -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

(可根据实际内存情况调整-Xmx值,32GB内存建议设为16G)

5. 启用配置缓存

当前配置关闭了配置缓存,启用后可大幅减少配置阶段耗时:

org.gradle.configuration-cache=true

首次构建会生成配置缓存,后续构建将直接复用;若出现警告,根据提示修复相关配置问题。

6. 跳过初始化脚本测试

日志显示应用了IDE生成的临时初始化脚本,尝试跳过初始化脚本执行构建:

gradle --no-initialization-scripts build

若问题消失,说明初始化脚本存在性能问题,可重置IDE的Gradle相关配置。

内容的提问来源于stack exchange,提问作者chksr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:20:55