Gradle のビルドが失敗した後、AndroidStudio が強制的に閉じられることがあります。ビルドを再度開くと、さまざまな .lock ファイルの問題が表示されます。1 つ削除すると、別の 1 つが存在し、パスが異なります。
通常の状況では、継続的なビルドに影響を与えるのは、これら 2 つのフォルダー内のロックファイルです。
- %GRADLE_HOME%/caches (gradle がインストールされている場所。ダウンロードしたライブラリは通常保持されます) の下にあります。
- プロジェクト ディレクトリ配下 (プロジェクトのビルド プロセスによって生成されたファイル、キャッシュなど)
- /.gradle/
- /.buildCahceDir/ 以下
一般的な解決策
- すべての .lock ファイルをクリアします。私の経験によると、それらのファイルは数十、または数百ある可能性があるため、1 つずつ削除する必要があります。もちろん、gradle の場合は、caches フォルダーを直接削除できますが、再度ビルドすると、jar パッケージやその他の依存ファイルが再ダウンロードされることがわかります。
- プロジェクトを同期して再度ビルドします。前の手順でキャッシュ フォルダーを削除すると、すべての依存関係がここにダウンロードされるため、時間がかかります。前の手順でロックファイルを 1 つずつ削除すると、時間がかかりますので、自分で気づいた場合は、キャッシュを直接削除することをお勧めします。
ロックファイルのターゲットを絞った削除ソリューション
ロックファイルを削除するとこの問題を解決できることがわかりましたが、これらのロックファイルを直接削除する方法はありますか? もちろん、あります。ロックを削除する解決策は、主にロック ファイルを見つけることですが、これは非常に手間がかかるため、ロック ファイルを見つけて削除するためのスクリプトを作成するだけで済みます。
Gradle ビルドが失敗した後に生成されたロック ファイルをクリーンアップするために使用されます。
クリーンロック.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/
直接ダウンロードするにはここをクリックしてください