任务名是否真实存在需通过gradle tasks验证:该命令列出当前模块所有已注册任务,但仅显示可调用任务;被onlyIf过滤或enabled=false的任务不出现,多模块项目需确认目录或使用完整路径如:app:tasks,并检查插件应用、AGP与Gradle版本兼容性及settings.gradle是否正确声明模块。

先确认任务名是否真实存在,而不是拼错、缩写过头或跑错模块
运行 gradle tasks 查所有可用任务
这是最直接的验证手段。不加任何参数执行该命令,会列出当前项目(含子项目)所有已注册的任务。注意三点:
- 输出默认只显示“可调用任务”,如果某个任务被
onlyIf条件过滤掉、或被enabled = false关闭,它不会出现在列表里 - 多模块项目中,该命令只显示当前工作目录对应模块的任务;若你在根目录下运行,却想查
:app:assembleDebug,而app是子模块,则需先cd app再运行,或直接用完整路径gradle :app:tasks - Gradle 8+ 默认启用 任务名称缩写,输入
gradle asD可能被展开为assembleDebug,但也可能匹配失败——此时错误提示里出现的乱码任务名(如ijDownloadArtifact643aca90-464)往往就是 IDE 尝试自动缩写后生成的非法名
检查插件是否已应用且版本兼容
绝大多数标准任务(如 build、run、assembleDebug)不是手写的,而是由插件注入的。常见问题包括:
-
assembleDebug必须由com.android.application插件提供;如果app/build.gradle里误用了com.android.library,这个任务就根本不会注册 -
run任务来自application插件,但 Gradle 8.4+ 已弃用旧版mainClassName配置方式,改用mainClass = "xxx";写错会导致插件初始化失败,任务不出现 - Android 项目中,AGP(Android Gradle Plugin)版本与 Gradle 版本不匹配时,部分任务(尤其是带
Debug/Release后缀的变体任务)会静默消失,而非报错——此时应核对 官方兼容表
确认当前目录和 settings.gradle 是否生效
Gradle 不是靠文件路径猜模块,而是靠 settings.gradle 的 include 声明来加载子项目。容易忽略的点:
- 在根目录执行
gradle :sdk_module_main:assemble,但settings.gradle里没写include ':sdk_module_main',Gradle 就当它不存在 - VSCode 或 IntelliJ 中右键运行任务时,IDE 可能未正确识别
settings.gradle,导致任务面板为空;此时手动执行gradle :sdk_module_main:tasks能立刻暴露问题 -
gradle-wrapper.properties文件缺失或distributionUrl被注释/写错(比如指向一个不可达的 URL),会导致整个 Gradle 运行时无法启动,连tasks都报Task 'wrapper' not found
真正卡住的地方,往往是任务“看似该有,实则没注册”——比如插件因语法错误未加载、build.gradle 里混入了 Kotlin DSL 的写法却用了 Groovy 文件后缀、或某个 apply from: 外部脚本执行失败但没抛异常。这种情况下,--stacktrace 和 --info 输出的日志比错误第一行重要得多。

















