在 Android 开发过程中,我们经常需要查看第三方库或 Android 框架的源码。然而,有时在点击源码链接或尝试下载文档时,Android Studio 会报错:

Execution failed for task ':app:ijDownloadArtifact'.
Task 'ijDownloadArtifact' not found in project ':app'.

即使手动点击“Download Sources”或“Download Documentation”也无济于事,甚至清缓存、重启 IDE 等常规手段都无法解决这个问题。本文将介绍一种经过验证的解决方案,帮助你快速恢复正常查看源码的功能。

博主博客

问题现象

  • 当你在代码中点击某个类(例如 TextView)试图跳转到源码时,IDE 弹出错误提示。
  • 错误信息中明确提到 ijDownloadArtifact 任务未找到。
  • 网络正常,项目可以正常编译运行,但就是无法下载依赖的源码。
  • 尝试过 File -> Invalidate Caches / Restart,问题依旧。

解决方案

经过多方资料对比和验证,以下两个设置可以有效解决该问题(主要针对 Android Studio 版本低于 2025.1 的情况)。

步骤一:禁用自动下载源码

Android Studio 自动下载源码.png

  1. 打开 Android Studio,进入 Settings(macOS 下为 Preferences)。
  2. 在左侧导航中选择 Advanced Settings(高级设置)。
  3. 找到 Open source files 部分,取消勾选 Automatically download source for a file upon open(打开文件时自动下载源码)。
    • 这个选项会在你首次查看某个依赖库的源码时,自动触发下载任务。在某些网络环境或项目配置下,这个自动任务可能失败并导致 ijDownloadArtifact 错误。
  4. 点击 ApplyOK 保存设置。

步骤二:启用实验性功能(可选,但推荐)

Android Studio 支持下载Java文档.png

对于低于 2025.1 版本的 Android Studio,还可以启用一个实验性功能来改善源码下载行为:

  1. 仍然在 Settings 中,进入 Experimental(实验性功能)。
  2. 找到 Gradle 相关选项,启用 support for multi-variant Javadocs and Source(支持多变体 Javadoc 和源码)。
    • 这个选项可以让 IDE 更好地处理具有多个构建变体的模块的源码和文档下载,避免因变体不匹配导致的下载任务缺失。
  3. 点击 OK 保存。

验证

完成上述设置后,重新尝试点击某个类跳转到源码。IDE 应该会弹出提示框询问你是否下载源码,点击 Download 即可正常下载并查看。如果仍然失败,可以尝试再次清空缓存并重启 IDE。

为什么会发生这个错误?

目前官方并未给出明确的解释,但根据社区讨论,该问题通常与以下因素有关:

  • 网络限制:无法访问 Google 或 JCenter 等源码仓库,导致自动下载任务超时或失败。
  • 代理配置:IDE 的代理设置不正确,使得下载请求被阻断。
  • 缓存损坏:IDE 缓存的依赖索引与 Gradle 实际配置不一致,导致触发的任务名不正确。
  • 多变体项目:当项目使用多个构建变体(如 debugrelease)时,IDE 可能找不到正确的源码变体,从而尝试执行错误的 ijDownloadArtifact 任务。

上述两个设置从根本上避免了自动触发下载任务(步骤一),并帮助 IDE 更准确地匹配变体(步骤二),因此能够绕过该错误。

结语

如果你也遇到了 ijDownloadArtifact 错误,不妨按照本文的步骤调整一下设置。这个方案已经在多个项目上验证有效,且不会影响正常的开发流程。如果你使用的是 Android Studio 2025.1 或更高版本,可能需要留意官方是否已修复此问题,但上述设置依然可以作为排查的起点。