Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio problem with compiling "The process cannot access the file because it is being used by another process."

I know this question has been asked before, but there wasn't a satisfactory answer, and the last post was three years ago. I am using android studio 3.6.2 in windows 10. Every time I try to compile my program I get the error "The process cannot access the file because it is being used by another process."

Now I know what is causing the error. The R.jar file that was previously compiled cannot be deleted because android studio is locking the file. It is in a folder \app\build\intermediates\compile_and_runtime_not_namespaced_r_class_jar\debug

Now to get around the problem I have been closing down android studio. Then deleting the R.jar, then restarting android studio and then compiling. This process takes a good few minutes and I have to do it every time. Imagine how long it takes to write a program when you have to do this every time.

When this was asked on stack overflow previously suggestions were to Invalid caches / restart, but that is no quicker than what I did above, and only works once. Also tried Clean Project, but that has no effect.

I have used many compilers over the years like visual studio, codeblocks etc but this kind of thing never happened before, so why is android studio so bad? Has anyone found a solution to this problem yet?

like image 648
Thomas Williams Avatar asked Oct 15 '22 04:10

Thomas Williams


2 Answers

[Remove Build][Go to Edit Configurations]

Go to Edit Configurations check that you are not building before each launch. Remove "Build"

like image 145
Bilal Aslam Avatar answered Oct 20 '22 11:10

Bilal Aslam


I also encountered the same problem in Android Studio 4.x in Windows 10. Simply using "Restart and Invalidate" does not work for me. Sometimes, deleting the build folder will work but I cannot build the project more than once. Here is my solution:

Check Java Runtime Version Used by Gradle and System Default

Having multiple daemons may cause problems as described in documentation from Gradle. To solve this problem,

  1. Open your project in Android Studio
  2. Find the JDK location used in your project (File > Project Structure > SDK Location > JDK Location)
  3. Open a command prompt. Let $ANDROID_JDK be the path you found in Step 2. Type $ANDROID_JDK/bin/java.exe --version to find out the Java version.
  4. Type java.exe --version to find out the default Java version used by the system.
  5. Compare if the version information from Step 3 and Step 4 are the same.

Build with app Configuration

Empty Composable Activity template will create two build configurations. You should change the build configuration to app as shown in the figure below. This solves my problem.

build configuration

Proper Launching Procedure

As illustrated in Bilal Aslam's solution, we can edit the build configurations (Run > Edit Configurations). After selecting Compose Preview > Default Preview, you will see Build then Gradle-aware Make in the Before launch panel. Remove Build should be able to solve the problem. The side-effects are unclear.

like image 32
Paco Wong Avatar answered Oct 20 '22 12:10

Paco Wong