179

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 cleanAS 端末から実行します。
  • ソースを新しいプロジェクトに手動でコピーする (プロジェクト間で何らかの形で保持されるのは奇妙です...)

私が試して少し成功したことはありますが、エラーが再び発生する前に、もう一度クリーンアップと再構築を実行できます。

  • AS を閉じ、ビルド ファイルを手動で削除し、再度開きます。
  • ASのjava.exe実行中にプロセスを強制終了します (これは技術的には毎回行うことができますが、面倒であり、ビルド プロセスが遅くなります)。

そのため、Java プロセスをコンパイルすると、何らかの理由でビルド ファイルがロックされる可能性があるようですが、それは Kotlin にも関係している可能性があります。私が取り組んでいる (より成熟した) Java Android プロジェクトがありますが、クリーニング時にこのエラーを再現することはできません。私のKotlinプロジェクトでのみ発生するようです。

アップデート:

この問題は Kotlin Android プラグインが原因であることがわかりました。apply plugin: 'kotlin-android'モジュールのbuild.gradleファイルから削除すると問題はなくなり、再挿入すると元に戻ります。これについての洞察を自由に提供してください。

更新 2:

最後の更新が原因ではありません。プロジェクトに Kotlin ファイルが含まれていると、再構築とクリーニングが失敗することがわかりました。すべての Kotlin ファイルが削除されたとしても、バックグラウンドの Java プロセスが強制終了されるまで失敗し続けます。つまり、ビルド ファイルに何らかのロックがかかることを意味します。バグを再現するための詳細と手順を記載したバグをここに送信しました: KT-9440

4

42 に答える 42

123

Android Studio 2.0 Beta を使用している場合、この問題が発生する可能性があり (NTFS ファイルシステムで作業している場合に発生する可能性が高くなります)、「Instant Run」が原因のようです。設定で「Instant Run」を検索し、ボックスのチェックを外します。

バグトラッカーに問題を提出しました。

于 2016-03-02T16:13:24.130 に答える
30

Kotlin バグ トラッカーにバグ レポートを投稿した後、AOSP トラッカーで問題 61300の通知を受けました。それが原因のようです。現時点では何もできないので、この質問を回答済みとしてマークし、バグが修正されたら回答を更新します。

それまでの間、Windows を実行している場合は、回避策を見つけたと思います。LockHunterをダウンロードする必要があります(もちろん自己責任で)。次に、変数を LockHunter.exe へのパスに置き換えて、モジュールのgradle.buildファイルに次を追加します。lockhunter

task clean(type: Exec) {
    ext.lockhunter = '\"C:\\LockHunter.exe\"'
    def buildDir = file(new File("build"))
    commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir
}

これにより、app:clean タスクの実行時に、LockHunter が強制的に黙ってロックを解除し、ビルド ファイルを削除します。

于 2015-10-03T15:33:05.540 に答える
30

このコマンドを使用して、ターミナルからプロジェクトを消去しgradlew cleanます。

ここに画像の説明を入力

于 2016-05-19T05:41:12.217 に答える
16

ディレクトリを削除intermediatesすると、問題をすばやく解決できます。

プロジェクトが再構築されると、ディレクトリが再構築されます。

于 2016-05-21T16:02:46.307 に答える
10

Android Studio 2.2 プレビュー 1 で同じ問題に直面していました。@AndresSuarez による解決策は正しかったのですが、何らかの理由で、タスク マネージャーで JAVA TM プロセスが見つかりませんでした。だから私は次の解決策を試してみましたが、うまくいきました-

コマンド プロンプトを開き、 と入力しますTASKKILL /F /IM java.exe。これにより、すべての JAVA TM プロセスが自動的に強制終了されます。アプリを再度コンパイルすると、動作するようになります。

さらに、.batファイルを作成し、上記のコードを追加して、問題が発生するたびに実行することができます。

于 2016-05-23T06:42:22.203 に答える
5

私の場合、これはアクティブなデバッグ プロセスが原因で発生しました。したがって、クリーニングまたは再構築する前に、アクティブなプロセスをすべて強制終了してください。成功を確定するには、Invalidate Caches/Restartを実行します。

于 2017-12-07T11:28:09.543 に答える
3

app/build/outputs/apkフォルダーを使用したプログラムを見つけて、フォルダーを削除します。

再構築する前に、Android Studio は古い apk フォルダーを削除する必要があると思います。

于 2016-11-05T18:25:03.627 に答える
3

中間体が問題を引き起こす場合があるため、それを削除してプロジェクトを再構築します

また

cmdコマンドを実行するだけです-> gradlew clean

ワークスペースのプロジェクトフォルダーに(私の仕事です)

于 2016-06-30T12:38:32.907 に答える
2

バグレポートで提案されているように、行のコメントを外します

idea.jars.nocopy=false

idea.propertiesファイルで私の問題を解決しました。

これは、Android Studio が更新されるたびに行う必要があることに注意してください。

于 2016-12-06T00:00:24.137 に答える
1

すべての Java サービスを削除しようとしましたが、IntelliJ ターミナルからgradlew clean buildコマンドを実行しているときにまだ失敗しています。削除しようとしているのと同じパスのどこかで開いた他のアプリケーションも確認しました。しかし、そのようなものは見つかりませんでした。というわけで、やっとIntelliJ IDEを再起動して、ビルドをスムーズに進めることができました。

于 2020-10-07T07:03:47.033 に答える
0

Androidスタジオでプロジェクトをクリーンアップして再度実行すると、問題が修正されました。「プロジェクトを作る」こともできます。

于 2016-08-01T03:28:39.937 に答える
0

それでも問題が解決しない場合は、Android Studio の最新バージョン (現時点では 2.1) に更新してください。古いバージョンの Android Studio のバグである可能性があります。それは今私のために解決されました。

于 2016-05-02T06:36:51.777 に答える
0

これらのファイルを手動で削除してみてください

私の場合build、プロジェクトとサブプロジェクトからすべてのディレクトリを削除しました

于 2021-01-15T13:38:24.227 に答える