Kesalahan: Eksekusi gagal untuk tugas ': aplikasi: bersih'. Tidak dapat menghapus file

166

Saya mencoba untuk membangun kembali proyek Android Studio Gradle saya (kebanyakan berisi kode Kotlin), tetapi mulai membuang UnableToDeleteFileExceptionselama proses pembersihan / pembangunan kembali:

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

Ini mulai terjadi setelah saya mencoba mengubah struktur paket proyek saya. Sayangnya, saya melakukannya dengan mengganti nama dan memindahkan folder sumber daripada refactoring melalui Android Studio, yang merupakan ide yang buruk.

Saya telah mencari solusi untuk masalah ini sepanjang hari, dan ini adalah hal-hal yang saya coba tidak berhasil:

  • Melakukan sinkronisasi Gradle;
  • Menginstal ulang Java JRE dan Java SDK;
  • Menginstal ulang Android Studio versi terbaru (1.4);
  • Kembali ke versi AS sebelumnya (1.3);
  • Memvalidasi cache AS dan memulai kembali;
  • Menghapus gradledan .gradledirektori dalam direktori proyek;
  • Menghapus .gradledirektori di direktori pengguna saya;
  • Berjalan gradlew cleandari terminal AS;
  • Secara manual menyalin sumber ke proyek baru (aneh bahwa entah bagaimana itu bertahan di seluruh proyek ...)

Hal-hal yang saya coba dengan sedikit sukses, tetapi hanya biarkan saya melakukan satu lagi bersih dan membangun kembali sebelum kesalahan terjadi lagi:

  • Menutup AS, menghapus file build secara manual, dan membukanya lagi;
  • Membunuh java.exeproses saat AS sedang berjalan (ini secara teknis bisa dilakukan setiap saat, tapi itu membosankan dan memperlambat proses pembangunan)

Jadi sepertinya mengkompilasi proses Java dapat membuat kunci pada file build untuk beberapa alasan, tetapi mungkin juga ada hubungannya dengan Kotlin. Saya memiliki proyek Java Android (yang lebih matang) yang sedang saya kerjakan, meskipun saya tidak dapat mereproduksi kesalahan ini saat membersihkannya. Tampaknya hanya terjadi pada proyek Kotlin saya.

Memperbarui:

Saya telah menemukan bahwa masalahnya disebabkan oleh plugin Android Kotlin. Masalahnya hilang ketika saya menghapus apply plugin: 'kotlin-android'dari file modul build.gradledan kembali ketika saya masukkan kembali. Jangan ragu untuk menawarkan wawasan apa pun tentang hal ini.

Pembaruan 2:

Pembaruan terakhir bukan penyebabnya. Saya menemukan bahwa jika suatu proyek berisi file Kotlin maka pembangunan kembali dan pembersihan gagal. Itu terus gagal, bahkan jika semua file Kotlin dihapus, sampai proses latar belakang Java dimatikan, berarti ia memiliki semacam kunci pada file build. Saya mengirimkan bug di sini dengan rincian lebih lanjut dan langkah-langkah untuk mereproduksi bug: KT-9440

Bryony
sumber
3
cache tidak valid dan restart studio dari menu file.
Mohammad Tauqir
Saya sudah mencobanya, tetapi saya mencobanya lagi untuk berjaga-jaga. Masih belum berhasil.
Bryony
Masalah seperti ini sering terjadi pada saya. jika opsi pertama tidak berhasil maka logout dari sistem kemudian mulai studio setelah masuk
Mohammad Tauqir
2
Restart PC saya dan masalahnya masih berlanjut. Terima kasih atas bantuan Anda.
Bryony

Jawaban:

123

Jika Anda menggunakan Android Studio 2.0 Beta, masalah ini mungkin muncul (lebih mungkin jika Anda bekerja pada sistem file NTFS) dan sepertinya "Instant Run" adalah penyebabnya. Cari "Instant Run" di pengaturan dan hapus centang pada kotak.

Saya telah mengajukan masalah pada pelacak bug.

Irfan
sumber
Saya menggunakan sshfs. Masalah yang sama di sini. Menonaktifkan menjalankan instan berfungsi untuk saya.
Lagu
2
Ya, DISABLING INSTANT RUN Studio 2.0 beta 7 membuat diselesaikan pengecualian ini
Yogesh Seralia
1
Android Studio 2.0 saya terjebak untuk menyegarkan proyek tertentu. Saya mencoba semuanya dan secara tidak sengaja mengikuti jawaban ini & diselesaikan dengan masalah yang berbeda dari pertanyaan. Saya macet begitu lama. Saya berharap saya bisa membuat Anda lebih banyak suara! Terima kasih
Rachita Nanda
9
Ini berhasil untuk saya. Jika itu membantu seseorang: Untuk menonaktifkan Instant Run di Android Studio versi 2.1 itu File -> Settings -> Build, Execution, Deployment -> Instant Run dan kemudian hapus centang pada kotak pertama "Aktifkan Instant Run ...".
Nickandross
1
Saya menggunakan AS v2.1.3. Dalam kasus saya, kotak "Jalankan Instan" sudah tidak dicentang, jadi saya memeriksanya, menerapkannya, Bersihkan & Membangun kembali proyek (kesalahan masih ada) dan kemudian menghapusnya, menerapkannya, Bersihkan & Membangun kembali proyek dan kesalahan telah pergi.
jose
114

Saya membunuh semua proses java TM di task manager dan itu memungkinkan saya untuk membangun kembali

Andres Suarez
sumber
29
+1. Proses Java zombie adalah masalahnya. Jika Anda menggunakan Win 10, buka Task Manager; mencari Java (TM) Platform biner SE; Tugas akhir.
Some Noob Student
26
Anda dapat menggunakan gradle --stopuntuk menghentikan daemon yang macet sebagai alternatif.
Jayson Minard
1
Apakah ada cara otomatis untuk mematikan proses. Saya menghabiskan banyak waktu dengan membunuhnya secara manual di setiap pembersihan.
AvatarQing
Dalam kasus saya, ada Meld terbuka (bandingkan dan gabungkan alat) yang mengunci folder untuk dibersihkan
Armando
dalam kasus saya saya tidak menemukan Java TM jadi saya
me
41

Coba File -> Batalkan Cache dan Restart

Ini berhasil untuk saya

Menjemukan
sumber
"Invalidate cache and restart" membuat Android studio macet di Window 8 PC. Saya menggunakan Android studio 2.2.2. Saya dapat menggunakan fitur ini sama sekali. Adakah yang punya solusi tepat untuk ini?
Nithinjith
File -> Validasi Cache dan Restart berfungsi tetapi membutuhkan banyak waktu sehingga tidak OK. Masalah dasar dari kegagalan fungsi file Win10 kembali tiba untuk saya memperbarui ke SDK 27 (saya menerima pesan pembaruan). Dan setelah pembaruan yang sama AS berteriak untuk NDK 15 tetapi hanya ada NDK14 yang tersedia, atur build build compile SDK ke 26 dan tidak menangis. Sepertinya kita berada di antara dua generasi di sini ?? Di Win10 x64 ada juga masalah dengan emulator yang membutuhkan data untuk dihapus untuk digunakan kembali. Kedengarannya seperti banyak sekali detail yang harus diperbaiki?
Jan Bergström
30

Setelah saya memposting laporan bug ke pelacak bug Kotlin, saya diberitahu tentang Masalah 61300 pada pelacak AOSP. Tampaknya itulah penyebabnya. Karena tidak ada yang bisa saya lakukan saat ini, saya akan menandai pertanyaan ini sebagai dijawab, dan saya akan memperbarui jawabannya jika bug diperbaiki.

Sementara itu, jika Anda menjalankan Windows, saya yakin saya sudah menemukan solusi. Anda harus mengunduh LockHunter (dengan risiko Anda sendiri tentu saja), kemudian menambahkan yang berikut ke gradle.buildfile modul Anda , mengganti lockhuntervariabel dengan path Anda ke LockHunter.exe:

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

Ini menyebabkan LockHunter membuka paksa dan diam-diam dan menghapus file build saat aplikasi: tugas bersih berjalan.

Bryony
sumber
Saya memecahkan masalah bersih dengan ini tetapi tidak dapat melakukan hal yang sama untuk menjalankan aplikasi. Masih mendapatkan kesalahan yang sama. Punya ide; mungkin mengganti bersih dengan sesuatu yang lain?
codiac
Kesalahan: (21, 0) Mendeklarasikan tugas 'bersih' khusus saat menggunakan plugin siklus hidup Gradle standar tidak diperbolehkan.
Shashwat Gupta
26

Bersihkan proyek dari Terminal menggunakan perintah ini gradlew clean.

masukkan deskripsi gambar di sini

Biswajit Karmakar
sumber
2
Mengetik perintah di atas mulai mengunduh, membongkar, dan menginstal, yang membutuhkan waktu. Setelah itu, solusi ini berhasil untuk saya.
Dale
Butuh 11 menit untuk menyelesaikan ini, tetapi tampaknya berhasil. Menjahit dalam waktu menghemat sembilan. Ini harus menjadi jawaban yang diterima.
mwieczorek
Saya di ubuntu saya menjalankan gradlew bersih seperti yang diinstruksikan di atas tetapi tidak berhasil .. :(. Perintah tidak ditemukan.
Abhijit Gujar
1
@AbhijitGujar Anda harus mencoba ./gradlew cleandi Ubuntu sebagai gantinya. (Ini akan menjalankan gradlewexecutable dari direktori proyek.)
TerraPass
7
./gradlew cleantidak memecahkan masalah ini untuk saya. Itu menunjukkan kesalahan yang sama lagi yaitu "tidak dapat menghapus direktori"
abggcv
12

Menghapus direktori intermediatesadalah perbaikan cepat untuk masalah.

Direktori akan dibangun kembali ketika proyek dibangun kembali.

DeaMon1
sumber
1
Saya sudah mencoba menghapus direktori perantara, tetapi Windows memberi tahu saya bahwa saya tidak bisa menghapus direktori. Aneh.
tronman
Ini bekerja untuk saya di salah satu proyek tetapi tidak pada yang lain :(
abggcv
7

Saya menghadapi masalah yang sama pada Android Studio 2.2 pratinjau 1, solusi oleh @AndresSuarez benar tetapi karena beberapa alasan saya tidak dapat menemukan proses JAVA TM di task manager saya. Jadi saya mencoba solusi berikut dan berhasil -

Buka command prompt dan ketik TASKKILL /F /IM java.exe. Ini akan membunuh semua proses JAVA TM secara otomatis. Sekarang kompilasi ulang aplikasi lagi, itu akan berfungsi.

Selain itu, Anda dapat membuat file .bat , menambahkan kode di atas dan menjalankannya setiap kali Anda menghadapi masalah.

Rohan Kandwal
sumber
5

Saya punya masalah ini di Android Studio 2.3.

Saya cukup restart Android Studio dan setelah itu saya bisa membersihkan tanpa keluhan.

Johan Lund
sumber
5

Bagi saya, ini terjadi karena proses debugging aktif . Jadi, sebelum membersihkan atau membangun kembali, pastikan untuk membunuh semua proses aktif. Untuk memakukan keberhasilan, jalankan Cache / Restart Tidak Valid .

Dmitry Smolyaninov
sumber
4

Saya memiliki masalah yang sama dan ini berhasil untuk saya:

  1. tutup Android Studio.
  2. hapus direktori perantara (selama Android Studio dibuka, direktori ini tidak dapat dihapus)
  3. buka Android Studio lagi
M. Chavoshi
sumber
4

Saya memecahkan dengan perintah:

taskkill /F /IM java.exe

lalu:

gradle assembleDebug 
Rick
sumber
3

Saya memecahkan ini di ubuntu saya seperti ini.

  1. Periksa proses yang berjalan di sistem Anda (Ubuntu) seperti di task manager di windows.

    Perintah terminal Ubuntu untuk mencantumkan semua proses yang berjalan ----> "gnome-system-monitor"

  2. Hentikan atau akhiri proses JAVA dan ANDROID dalam daftar.

  3. Sekali lagi mulai proyek studio dan impor.

Ini bekerja untuk saya tanpa masalah. Semoga ini membantu...

Saya pikir ini adalah masalah dengan proses yang sudah dibuat dan diduplikasi.

HariPrasad
sumber
3

Bagi saya itu membantu ketika saya Exit Android Studio, klik sekali lagi Clean Project(muncul kesalahan yang sama) dan klik berikutnya Make Project- setelah itu tentu saja Run 'app'tombol di Android Studio.

y07k2
sumber
3

Temukan program yang menggunakan folder app / build / outputs / apk , lalu hapus folder saja.

Saya pikir Android Studio harus menghapus folder apk lama sebelum membangun kembali.

Memberikan
sumber
3

Beberapa kali perantara membuat masalah jadi hapuslah dan Bangun kembali proyek

ATAU

cukup jalankan perintah cmd -> gradlew clean

dalam folder proyek Anda di ruang kerja (ini berfungsi untuk saya)

Chetan Joshi
sumber
2

Solusinya cukup mudah.

Ini adalah salah satu solusi yang berhasil untuk saya.

Mungkin saja folder aplikasi / build / output / apk proyek Anda dibuka.

jadi tutup saja folder ini dan bangun kembali proyek Anda. dan itu akan dipecahkan.

Mehul
sumber
ya saya mengalami masalah ini, ada file laporan yang disimpan di build / report / checkstyle.html, menutup file ini memecahkan masalah saya, terima kasih
tamtom
2

Seperti yang disarankan dalam laporan bug , batalkan komentar pada baris

idea.jars.nocopy=false

dalam idea.propertiesfile telah memecahkan masalah bagi saya.

Perhatikan bahwa ini perlu dilakukan setiap kali pembaruan Android Studio.

Jose Gómez
sumber
2

Bagi saya, pelakunya adb memegang file apk karena saya menggunakannya untuk menginstal dan memulai aplikasi pada perangkat fisik saya melalui baris perintah.

Jadi secara sederhana:

Manajer Tugas> Akhiri proses adb.exe

Dan kemudian file tersebut bebas untuk dihapus dan proyek dapat dibersihkan

Benallansmith
sumber
2

bereaksi devs asli

Lari

sudo cd android && ./gradlew clean

dan jika Anda ingin melepaskan apk

sudo cd android && ./gradlew assembleRelease

Semoga ini bisa membantu seseorang

Muhammad Ashfaq
sumber
1

Jika Anda menguji dengan backend lokal (java servlet di mesin google app lokal) proses yang berjalan memblokir beberapa file. Jadi, Anda tidak dapat hidup menggunakan. Jadi dalam hal ini Anda dapat menyelesaikan ini dengan menghentikan backend lokal sebelum mulai membersihkan atau membangun. Anda menemukan opsi di bawah "Run -> Stop backend".

Tino
sumber
1

Di Android Studio 3.0, saya memiliki masalah yang sama. Ini memperbaikinya:

  1. Tutup Studio
  2. Hapus projectRoot / build / dan projectRoot / app / build /
  3. Mulai Ulang Studio
Joseph Bani
sumber
1

Saya memiliki masalah yang sama setelah memindahkan proyek saya dari D: ke G: drive tetapi pemeriksaan disk memecahkan masalah saya

Saya menggunakan chkdsk / f / r / x G: ** di sini beberapa saklar baris perintah digunakan: **

/ F Memperbaiki kesalahan pada disk

/ R Menemukan bad sector dan memulihkan informasi yang dapat dibaca (tersirat / F)

/ X Memaksa volume untuk turun terlebih dahulu jika perlu (menyiratkan / F) (penting)

Catatan: / X penting karena akan menurunkan drive dan Anda dapat secara manual menghapus direktori build proyek Anda,

sekarang membangun kembali proyek

Sumanpal Singh Saggu
sumber
Ini berhasil. Terima kasih! :) Tapi butuh hampir 5 jam. waktu untuk menyelesaikan.
Rohit Sharma
1

Saya baru saja memecahkan masalah yang tepat ini untuk diri saya sendiri.

Masalahnya adalah bahwa orang lain telah membuat file jadi meskipun saya memiliki hak admin di komputer saya tidak dapat membuat perubahan pada file atau file. Anda harus masuk ke properti file atau folder dan mengubah kepemilikan atau menambah kepemilikan.Halaman web ini menjelaskan dengan baik langkah demi langkah apa yang perlu Anda lakukan.

Setelah saya melakukan hal di atas, saya menemukan file dalam file explorer dan diekstraksi secara manual. Saya tidak berpikir itu diperlukan dalam proyek studio android jika tetap mencoba menghapusnya.

Adam Higgins
sumber
1

Aplikasi lain yang dapat menggunakan sumber daya rupanya Kotlin REPL Android Studio. Saya menutup itu, dan kemudian saya bisa membangun lagi tanpa masalah.

pengguna2061182
sumber
0

Masalah ini muncul pada saya di saluran stabil android studio 2.0 dan solusinya adalah karena masalah yang terjadi saat memperbarui studio android saya, saya menyelesaikan ini dengan menginstal studio android baru. setelah menghapus semua file lama untuk instalasi lama. dan untuk menjaga fitur Run Instan yang sangat bagus

Mohamed
sumber
0

jika Anda masih mengalami masalah maka perbarui ke versi terbaru dari Android Studio (2.1 yang sekarang), mungkin itu adalah bug dengan versi Android Studio yang lebih lama. Sudah terpecahkan untuk saya sekarang.

Ishant Sagar
sumber
Terjadi pada 2.2 pratinjau 1 untuk saya, jadi saya pikir itu tidak diperbaiki.
Rohan Kandwal
0

Membersihkan proyek di studio Android dan menjalankannya kembali memperbaiki masalah. Mungkin melakukan "Buat Proyek" juga.

sofs1
sumber
0

Saya memiliki masalah yang sama dan saya menyelesaikannya dengan memindahkan folder proyek ke partisi ext4

Ahmed Esameddeen
sumber
Ya, saya sudah membaca di tempat lain bahwa sistem Android Studio / gradle / React Native / packager / watchman memiliki masalah (untuk beberapa alasan) pada sistem file NTFS.
Venryx
0

Saya memiliki kesalahan yang sama, mencoba beberapa cara tetapi solusi yang berhasil bagi saya adalah menghapus folder build dari / android dan / android / direktori aplikasi.

lari react-native run-androidbekerja untukku.

Eltaf
sumber
0

Saya menyelesaikannya dengan mencari direktori yang hilang di proyek secara global. kemudian hapus semua file yang mengandung kata kunci itu. itu dapat membersihkan dengan sukses setelah saya menghapus semua builddan .externalNativeBuilddirektori secara manual.

wdanxna
sumber