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

Gradle清理缓存报错:Failed to load compiled script from classpath

故障根因

手动删除$HOME/.gradle/caches/目录后触发该报错,本质是三类问题导致的:

  1. 运行中的Gradle守护进程持有旧缓存的文件句柄,缓存被删后进程引用失效
  2. 全局Gradle缓存被清空后,项目本地目录下残留的脚本编译缓存、构建缓存和全局状态不匹配,出现损坏的类文件引用
  3. 手动删缓存时因为权限问题导致目录结构损坏,Gradle没有权限写入重建缓存
分步解决
  • 第一步:终止所有存活的Gradle守护进程,释放所有文件锁,在对应项目的android目录下执行命令:
    # macOS/Linux系统
    ./gradlew --stop
    
    # Windows系统
    gradlew.bat --stop
    
  • 第二步:清理所有残留的损坏缓存,修复目录权限:
    1. 修复全局Gradle目录权限,执行:
    mkdir -p $HOME/.gradle/caches
    chmod -R u+rw $HOME/.gradle/
    
    1. 保持在项目的android目录下,删除项目本地的Gradle缓存和所有构建产物:
    rm -rf .gradle/
    find . -name "build" -type d -exec rm -rf {} +
    
  • 第三步:触发缓存全量重建,先执行轻量命令校验环境正常,不要直接跑打包等重任务:
    # macOS/Linux
    ./gradlew help --refresh-dependencies
    
    # Windows
    gradlew.bat help --refresh-dependencies
    
    第一次执行该命令时Gradle会重新拉取所有依赖、重新编译构建脚本,耗时会比平时久,属于正常现象,不要中途中断进程避免再次损坏缓存。等命令执行完成无报错,说明Gradle缓存已经重建完成,后续执行任意构建任务都可以正常运行。
后续清理缓存的正确方式
  • 优先使用Gradle官方提供的清理命令,不要直接手动删除全局缓存目录:项目级构建缓存清理执行./gradlew cleanBuildCache即可
  • 如果确实需要清空全局缓存,必须先执行./gradlew --stop停掉所有守护进程,再删除缓存目录,避免文件锁导致缓存损坏
  • 如果以上步骤执行完仍报错,检查本地JDK版本和当前项目使用的Gradle版本是否匹配:Gradle 7.x要求JDK版本不低于11,Gradle 8.x要求JDK版本不低于17,版本不匹配也会触发脚本编译加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 10:57:17