198

I'm trying to rebuild my Android Studio Gradle project (containing mostly Kotlin code), but it started to throw an UnableToDeleteFileException during the cleaning/rebuilding process:

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

This started happening after I tried to change my project's package structure. Unfortunately, I did it by renaming and moving the source folders rather than refactoring through Android Studio, which was a bad idea.

I've been searching for a solution to this problem all day, and these are the things I have tried to no avail:

  • Doing a Gradle sync;
  • Reinstalling Java JRE and Java SDK;
  • Reinstalling the latest version of Android Studio (1.4);
  • Rolling back to the previous AS version (1.3);
  • Invalidating the AS cache and restarting;
  • Deleting the gradle and .gradle directories in the project directory;
  • Deleting the .gradle directory in my user directory;
  • Running gradlew clean from the AS terminal;
  • Manually copying the sources over to a new project (weird that it somehow persists across projects...)

Things that I've tried with a little success, but only let me perform one more clean and rebuild before the error occurs again:

  • Closing AS, manually deleting the build files, and opening it again;
  • Killing the java.exe process while AS is running (this could technically be done every time, but it's tedious and slows down the build process)

So it seems that compile the Java process may put a lock on the build files for some reason, but it might also be something to do with Kotlin. I have a (more mature) Java Android project that I'm working on, though I can't reproduce this error when cleaning it. It seems to only happen to my Kotlin project.

Update:

I've found that the problem is being caused by the Kotlin Android plugin. The problem disappears when I remove apply plugin: 'kotlin-android' from the module's build.gradle file and comes back when I reinsert it. Feel free to offer any insight into this.

Update 2:

The last update isn't the cause. I found that if a project contains a Kotlin file then rebuilding and cleaning fails. It continues to fail, even if all the Kotlin files are removed, until the background Java process is killed, meaning it has some kind of lock on the build files. I submitted a bug here with more details and steps to reproduce the bug: KT-9440

5
  • 5
    invalidate cache and restart studio from file menu. Commented Oct 2, 2015 at 19:31
  • I had already tried that, but I tried it again just in case. Still no luck though. Commented Oct 2, 2015 at 19:35
  • This kind of issue often occurs to me. if first option did not work then log off from system then start studio after logging in. Commented Oct 2, 2015 at 19:46
  • 2
    Restarted my PC and the problem still persists. Thanks for your help though. Commented Oct 2, 2015 at 20:02
  • I solved it by deleting build folder from Explorer Commented Jul 24, 2020 at 6:54

45 Answers 45

142

I killed all the java TM processes in the task manager and it let me to rebuild

Sign up to request clarification or add additional context in comments.

8 Comments

+1. Zombie Java process was the issue. If you're on Win 10, open Task Manager; look for Java (TM) Platform SE binary; End Task.
You can use gradle --stop to stop any stuck daemons as an alternative.
Is there some automatic way to kill the processes. I waste so much time by killing it manually in every clean.
In my case, there was an open Meld (compare and merge tool) that was locking the folder to clean
@DasserBasyouni try to kill "OpenJDK Platform binary"
|
123

If you are using Android Studio 2.0 Beta, this issue might appear (more likely if you are working on NTFS filesystem) and it seems like the "Instant Run" is the culprit. Search for "Instant Run" in settings and uncheck the box.

I have filed an issue on the bug tracker.

9 Comments

I'm using sshfs. Same issue here. Disabling instant run works for me.
Yes,DISABLING INSTANT RUN Studio 2.0 beta 7 made resolved this exception
My Android Studio 2.0 was stuck at refreshing a particular project. I tried everything and accidentally followed this answer & it solved by problem which was different from the question.I was stuck for so long . I wish I could upvote you more times! Thank you
This worked for me. In case it helps someone: To disable Instant Run in version 2.1 of Android Studio that's File -> Settings -> Build, Execution, Deployment -> Instant Run and then un-check the first box "Enable Instant Run...".
I'm using AS v2.1.3. In my case, the "Instant Run" box was already unchecked, so I checked it, applied it, Clean & Rebuid the project (the error was still there) and then unchecked it, applied it, Clean & Rebuid the project and the error was gone.
|
54

Try File -> Invalidate Caches and Restart

This worked for me

2 Comments

The "Invalidate cache and restart" makes Android studio to stuck in Window 8 PC. I am using Android studio 2.2.2. I can use this feature at all. Anyone has a right solution for this?.
File -> Invalidate Caches and Restart works but takes so much time it is not OK. The basic problem of Win10 file privileges malfunctions re-arrived for me updating to SDK 27 (I accepted the update message). And after the same update the AS cries for NDK 15 but there is only a NDK14 available, set build gradle compile SDK to 26 and it don't cry. Look like we are in between two generations here?? In Win10 x64 there is also problems with the emulators that need data to be wiped to be reused. Sound like an awful lot of details to fix?
31

After I posted a bug report to the Kotlin bug tracker, I was notified of Issue 61300 on the AOSP tracker. That seems to be the cause. Since there's nothing I can do at the moment, I'll mark this question as answered, and I'll update the answer if the bug is fixed.

In the meantime, if you're running Windows, I believe I've found a workaround. You'll need to download LockHunter (at your own risk of course), then add the following to your module's gradle.build file, replacing the lockhunter variable with your path to LockHunter.exe:

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

This causes LockHunter to forcefully and silently unlock and delete the build files when the app:clean task runs.

2 Comments

I solved the clean problem with this but unable to do the same for running the app. Still get the same error. Got any idea; maybe change the clean with something else?
Error:(21, 0) Declaring custom 'clean' task when using the standard Gradle lifecycle plugins is not allowed.
31

Clean project from Terminal using this command gradlew clean.

enter image description here

8 Comments

Typing the above command started a download, unpack, and install, which took some time. After that, this solution worked for me.
@AbhijitGujar You should try ./gradlew clean on Ubuntu instead. (It will run the gradlew executable from the project directory.)
./gradlew clean did not solve this problem for me. It showed the same error again i.e. "unable to delete directory"
try using sudo if that is UNIX based system
It worked for me, but before that, I need to give proper permissions to run ./gradlew, with chmod +x ./gradlew. Using Ubuntu 20.04 and Android version 4.1.1, and gradle version 6.5.
|
27

I solved with command:

taskkill /F /IM java.exe

and then:

gradle assembleDebug 

2 Comments

taskkill /F /IM java.exe was the solution for me. Thanks!
great.. worked for me <3
18

Deleting the directory intermediates is a quick fix for problem.

The directory will be rebuilt when the project is rebuilt.

2 Comments

I've tried to delete the intermediates directory, but Windows tells me I can't delete the directory. Weird.
It worked for me on one of the projects but not on another :(
13

I was facing same issue on Android Studio 2.2 preview 1, solution by @AndresSuarez was correct but for some reasons I couldn't find JAVA TM process in my task manager. So I tried the following solution and it worked -

Open command prompt and type TASKKILL /F /IM java.exe. This will kill all JAVA TM processes automatically. Now re-compile the app again, it will work.

Additionally, you can create a .bat file, add the above code in it and run it every time you face the issue.

Comments

6

I had the same problem and this worked for me:

  1. close Android Studio.
  2. delete intermediates directory (as long as Android Studio is opened, this directory can't be deleted)
  3. open Android Studio again

Comments

5

I had this problem in Android Studio 2.3.

I simply restarted Android Studio and after that I could clean without complaints.

Comments

5

For me, this happened because of an active debugging process. So, before cleaning or rebuilding, make sure to kill all active processes. To nail down the success, execute Invalidate Caches/Restart.

Comments

5

For my case, I resolve it by -

  1. First, close the app if it is running in the emulator.
  2. Then run the command gradle --stop in the Terminal in Android studio.
  3. Then clean project and rebuild project

2 Comments

tnx, that helps I had two demons run at the same time
This solution is worked for me. I am on RN and just need to close all device connection before clean build.
4

For me it helps when I Exit Android Studio, click one more time Clean Project (it appears the same error) and next click Make Project - after that of course Run 'app' button in Android Studio.

Comments

4

For me, the culprit is adb holding onto the apk file since I utilise it to install and start the application on my physical device through command line.

So simply:

Task Manager > End process adb.exe

And then the file is free to be deleted and the project may be cleaned

Comments

3

I solved this one in my ubuntu like this.

  1. Check for the processes running in your system(Ubuntu) like in task manager in windows.

    Ubuntu terminal command to list out all processes running ----> "gnome-system-monitor"

  2. Terminate or end the JAVA and ANDROID processes in the list.

  3. Again start the studio and import project.

Its works for me without any problems. Hope this helps...

I thought this is the problem with the process that are already created and Duplicated.

Comments

3

The solution is quite easy.

This is one of the solution which worked for me.

It might be possible that your project's app/build/outputs/apk folder is opened.

so just close this folder and rebuild your project. and it will be solved.

1 Comment

yes I was having this problem , there was a report file that is saved in build/report/checkstyle.html , closing this file solved my problem , thanks
3

Find programs who used app/build/outputs/apk folder, then just delete folder.

I think Android Studio have to delete old apk folder before rebuilding.

Comments

2

As suggested in the bug report, uncommenting the line

idea.jars.nocopy=false

in the idea.properties file has solved the issue for me.

Note that this needs to be done every time Android Studio updates.

Comments

2

Some times intermediates creates problem so delete it and Rebuild project

OR

simply run cmd command - > gradlew clean

in your project folder in work space (its work for me)

Comments

2

In Android Studio 3.0, I had the same issue. This fixed it:

  1. Close Studio
  2. Delete projectRoot/build/ and projectRoot/app/build/
  3. Restart Studio

Comments

2

react native devs

run

sudo cd android && ./gradlew clean

and if you want release apk

sudo cd android && ./gradlew assembleRelease

Hope it will help someone

Comments

2

i simply run cmd command - > gradlew clean , And it fix the issue

Comments

1

This issue appeared to me in android studio 2.0 stable channel and the solution was due to a problem happened while updating my android studio i solved this by installing a fresh android studio. after deleting all old files for the old installation. and to keep the very nice feature of Instant Run

Comments

1

If you are testing with a local backend (java servlet on local google app engine) the running process blocks some files. So you are not able to live deploy. So in this case you can solve this by stopping the local backend before starting clean or build. You find the option under "Run -> Stop backend".

Comments

1

I had the same error, tried multiple ways but the solution worked for me was to delete build folders from /android and /android/app directories.

run react-native run-android worked for me.

Comments

1

I solved it by global searching the missing directory in the project. then delete any files containing that keyword. it can clean successfully after I remove all the build and .externalNativeBuild directories manually.

Comments

1

I had the same issue after moving my project from D: to G: drive but disk checking solved my issue

I used chkdsk /f /r /x G: ** here some command line switches were used:**

/F Fixes errors on the disk

/R Locates bad sectors and recovers readable information (implies /F)

/X Forces the volume to dismount first if necessary (implies /F) (important)

Note: /X is important because it will dismount the drive and you can manually delete the build directory of your project,

now rebuild the project

1 Comment

This worked. Thank you! :) But it took almost 5 hrs. time to complete.
1

My Solution for this was very very simple ( if you are using Windows). 1- Close Android Studio. 2- Run Android Studio as Administrator. 3- That is it.

Comments

1

I just solved this exact problem for myself.

The problem was that somebody else had created the file so even though I have admin rights on the computer I was unable to make changes to the file or files. You need to go into the properties of the file or folder and change the ownership or add ownership. This web page explains it well step by step what you need to do.

Once I did the above, I found the file in file explorer and manually extracted it. I don't think it's needed in the android studio project if it was trying to delete it anyway.

Comments

1

Another application that can be using the resources is apparently Android Studio's Kotlin REPL. I closed that, and then I could build again no problem.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.