Gradle build 失败后提示.lock文件,解决办法

在Gradle build失败之后时,有时候强制关闭AndroidStudio,再次打开build时,会提示各种.lock 文件问题,删除了一个还有下一个,而且路径不一样。
在这里插入图片描述

一般情况下是这两个文件夹下的lockfile影响继续build

  • %GRADLE_HOME%/caches 下的 (安装gradle的位置,一般会保留你下载的库)
  • 项目目录下 (项目build过程产生的文件,缓存等)
    • /.gradle/
    • /.buildCahceDir/ 下

常规解决方案

  1. 清除所有的 .lock 文件; 根据我的经验 可能有几十上百个,需要挨个去删除。当然对于gradle下的,可以直接删除caches文件夹,但是你会发现,再次build会重新下载jar包等依赖文件。
  2. sync 一下项目 再build 可以build了;如果上一步 删除了caches文件夹,此处会下载所有的依赖,时间会很长。如果上一步你是自己挨个lockfile去删除的,耗费的时间也神长,你自己体会,还不如直接删除了caches

针对性删除lockfile 方案

既然我们知道删除lockfile可以解决这个问题,那么,有没有什么办法直接去删除这些lockfile,当然有!删除lock的方案 主要是寻找lock file 比较费劲,那我直接写个脚本帮我找并删除就好了。

用于清理gradle build失败之后,产生的lock文件。

clean_lock.sh

#!/bin/bash
removeFiles() {
    
    
    if test -d "$1"
    then
        echo "开始清理"
        removeFileInDirectory $1
        echo "清理完成"
    else
        echo "输入目录不存在"
    fi

}

removeFileInDirectory() {
    
    
    find $1 -name "*.lock" -print  -type f -exec rm -f {
    
    } \;
}

removeFiles $1 

上边的代码写好后,保存为 clean_lock.sh 然后执行命令就好了 让你的命令可执行:让你的.sh脚本文件可以执行

命令如下:

./clean_lock.sh [path]     

使用时把path 替换为你要删除的路径即可:

删除gradle缓存汇总的lock文件
./clean_lock.sh /User/me/Desktop/gradle_home/caches/     
删除项目中的lock文件
./clean_lock.sh /User/me/Desktop/my_project/  

点这里直接下载

猜你喜欢

转载自blog.csdn.net/yztbydh/article/details/131980910