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

如何在Android Studio中实现两个Gradle任务的并行运行?

Android Studio中Gradle任务串行阻塞Activity重载的解决办法

问题背景

  • 应用启动后,执行项目内无关Gradle任务时,「Restart Activity」操作会被完全阻塞,必须等待任务执行完毕才能完成重载
  • 测试两个独立Gradle任务(一个延时任务、一个输出任务),在Android Studio中必须串行执行,但IntelliJ IDEA可正常并行运行
  • 已在gradle.properties中配置:
    org.gradle.daemon=true
    org.gradle.parallel=true
    
    仅启用了守护进程,并行执行未生效

原因说明

这是Android Studio的已知行为:默认情况下,IDE会将所有Gradle任务调度到同一个关联项目的执行线程池,即便任务间无依赖关系,也会强制串行执行。而IntelliJ IDEA对非Android项目的Gradle任务采用了更宽松的调度策略,允许无依赖任务并行。

可行解决方案

1. 配置Android Studio的Gradle并行执行设置

打开File > Settings > Build, Execution, Deployment > Build Tools > Gradle:

  • 勾选Parallel execution on the same project选项
  • 补充gradle.properties配置(适配Gradle 6.0+):
    org.gradle.configuration-cache=true
    org.gradle.parallel=true
    org.gradle.workers.max=4 # 根据CPU核心数调整,8核建议设为6-8
    
  • 保存配置后重启Android Studio

2. 终端启动独立守护进程执行任务

在Android Studio的Terminal中执行Gradle任务时,添加--no-reuse-daemon参数,强制启动独立的Gradle守护进程,避免与IDE的守护进程抢占资源:

./gradlew yourCustomTask --no-reuse-daemon

3. 自定义任务分组优化

如果是自己编写的Gradle任务,将任务分组设为非Android默认分组(比如custom),IDE对不同分组的任务调度限制更宽松:

task delayTask {
    group = "custom"
    doLast {
        Thread.sleep(10000)
        println("Delay task finished")
    }
}

task printTask {
    group = "custom"
    doLast {
        println("Print task finished")
    }
}

4. 升级Android Studio至最新稳定版

部分旧版本(如低于Arctic Fox)的Android Studio对Gradle并行执行的支持存在缺陷,升级到最新版可修复此类调度问题。

验证方式

执行两个无依赖的自定义任务,观察是否同时启动;启动应用后执行无关任务,尝试点击「Restart Activity」,确认是否不再被阻塞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 19:20:06