前回のビルドのプロセスがキャッシュファイルのロックを取っていてAndroid Studioのビルドができないとき
Android Studioでビルドをしていると、なかなかビルドが終わらずに途中でキャンセルしたり、ついAndroid Studioごと強制終了できないかなと考えて実行してしまったりします。
そうしてビルドを終了させても前回のビルドが正常に終了せず、前回のビルドのプロセスがキャッシュファイルのロックを取っていてAndroid Studioのビルドができないことがあり、その場合、下記のようなエラーが出ます。
Error:A problem occurred configuring root project 'android'. > Could not resolve all dependencies for configuration ':classpath'. > Timeout waiting to lock artifact cache (/Users/woshidan/.gradle/caches/modules-2). It is currently in use by another Gradle instance. Owner PID: 1234 Our PID: 5678 Owner Operation: resolve configuration ':classpath' Our operation: resolve configuration ':classpath' Lock file: /Users/woshidan/.gradle/caches/modules-2/modules-2.lock
このとき、やれることとしては2つで、
- ロックを取っている前のビルドのプロセスを殺す
- ロックを取られているファイルを削除する
になります。
ロックを取っている前のビルドのプロセスを殺す
ps aux | grep 1234
をしてそのPIDのプロセスが確かにAndroid Studioのプロセスっぽいのを確認した後で、
kill -9 1234
ロックを取られているファイルを削除する
rm /Users/woshidan/.gradle/caches/modules-2/modules-2.lock
キャッシュのファイルがなくなるので、次のビルドはちょっと遅くなりますが、動かないよりマシでしょ、という感じです。