[解決済み] エラーです。タスク ':app:clean' の実行に失敗しました。ファイルを削除できません。
質問
Android Studio の Gradle プロジェクト(ほとんどが Kotlin のコードを含む)を再構築しようとしているのですが、このプロジェクトで
UnableToDeleteFileException
クリーニング/リビルドのプロセス中に
Execution failed for task ':app:clean'.
> Unable to delete file: C:\Users\User\KotlinGameEngine\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.1\jars\classes.jar
この現象は、プロジェクトのパッケージ構造を変更しようとした後に起こり始めました。残念ながら、Android Studioでリファクタリングするのではなく、ソースフォルダをリネームして移動させるという方法で行ったのですが、これは悪い考えでした。
この問題の解決策を一日中探していたのですが、以下は私が試したものの無駄だったものです。
- Gradleの同期を行う。
- Java JREとJava SDKを再インストールする。
- Android Studioの最新版(1.4)を再インストールする。
- 以前のASバージョン(1.3)にロールバックする。
- ASキャッシュを無効にして再起動する。
-
を削除する。
gradle
と.gradle
ディレクトリを作成します。 -
を削除する。
.gradle
ディレクトリを作成しました。 -
実行中
gradlew clean
をASターミナルから起動します。 - 新しいプロジェクトに手動でソースをコピーする(なぜかプロジェクト間で持続するのが不思議...)
試してみたところ、少しは成功しましたが、エラーが再び発生する前に、もう1回だけクリーンアップと再構築を実行することができました。
- ASを終了し、ビルドファイルを手動で削除し、再度開く。
-
を殺す。
java.exe
プロセス (これは技術的には毎回行うことができますが、面倒であり、ビルドプロセスの速度を低下させます。)
ということで、Javaのコンパイル処理が何らかの理由でビルドファイルにロックをかけている可能性があるようですが、Kotlinとの関係もありそうです。私は(より成熟した)JavaのAndroidプロジェクトを持っていますが、それをクリーニングするときにこのエラーを再現することはできませんが。私のKotlinプロジェクトにのみ発生するようです。
更新しました。
Kotlin Androidプラグインが原因であることがわかりました。この問題は
apply plugin: 'kotlin-android'
を、モジュールの
build.gradle
ファイルを挿入し直すと戻ってきます。この件に関して、何かご意見がありましたら、お気軽にお寄せください。
更新2:
前回のアップデートが原因ではありません。プロジェクトにKotlinファイルが含まれていると、再構築とクリーニングに失敗することがわかりました。すべての Kotlin ファイルを削除しても、バックグラウンドの Java プロセスが終了するまで、つまりビルド ファイルを何らかの方法でロックするまで、失敗し続けるのです。詳細とバグを再現する手順を記載したバグをここに提出しました。 KT-9440
解決方法は?
Kotlinのバグトラッカーにバグレポートを投稿した後、以下の通知が届きました。 課題61300 をAOSPトラッカーに追加しました。それが原因のようです。今のところ何もできないので、この質問を回答済みとし、バグが修正されたら回答を更新します。
一方、Windowsをお使いの方は、回避策を見つけたと思います。ダウンロードする必要があります。
ロックハンター
(もちろん自己責任で)それから、以下をあなたのモジュールの
gradle.build
ファイル内で
lockhunter
変数にLockHunter.exeへのパスを指定してください。
task clean(type: Exec) {
ext.lockhunter = '\"C:\\LockHunter.exe\"'
def buildDir = file(new File("build"))
commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir
}
これにより、app:cleanタスクの実行時に、LockHunterが強制的かつ静かにビルドファイルのロックを解除し、削除するようになります。
関連
-
[解決済み】gradlew: パーミッションが拒否される
-
[解決済み] エラーの種類 3 エラーです。アクティビティクラス{}が存在しない
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
[解決済み] アイテムの親を取得する際にエラーが発生しました。AppCompat v23にアップグレードした後、指定された名前に一致するリソースが見つかりません。
-
[解決済み] Android StudioのデバッグモードでSHA-1フィンガープリント証明書を取得する方法を教えてください。
-
[解決済み] エラーメッセージ "Android Gradle plugin requires Java 11 to run. 現在、Java 1.8を使用しています"
-
[解決済み] android studioでgradleをアップデートする方法は?
-
[解決済み】Android Studioです。jarをライブラリとして追加しますか?
-
[解決済み】すべてのSDKライセンスを自動的に受け入れる
-
[解決済み] Android- Error:Execution failed for task ':app:transformClassesWithDexForRelease'.
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
aapt2エラー:ログを確認する(具体的な原因の探り方)
-
ジャークとして。起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりません アクティビティ起動中のエラー
-
android E/RecyclerView﹕ アダプタが接続されていないため、レイアウトをスキップする。
-
android:EMSのプロパティ
-
android exception - aapt.exe has stopped working.
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
WeChatとQQは、他のアプリのオープンリストに自分のアプリを追加し、ファイルパスを取得することができます
-
view.getRootView()の本当の意味とテストについて
-
AndroidでListViewを使ってカスタムテーブルを描画する
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。