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
相关产品推荐
相关产品推荐

