Learn how to solve the exception in Android Studio that warns about the corruption of Build Tools Revision 31.

How to solve Android Studio Error: Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.

In many blogs, you will find that the solution is to downgrade to the API 30, however, if you want to experiment with the API 31, downgrading isn't a real solution. Fortunately, there's a way to make the build tools work for API 31. The cause of the corruption of the build tools for API 31 is 2 missing files:

  • dx.bat
  • dx.jar

These files exist however with another name, specifically:

  • d8.bat
  • d8.jar

So the workaround to prevent this exception from appearing is either to copy the mentioned files that exist with the new names or create a symbolic link (shortcut in Windows) and it will magically work. This will work in all the operative systems, however the way to do it will depend of every platform.

Windows

You can do this manually or with the command prompt, to create the symlink for dx.bat (remember to replace the SDK directory with yours):

mklink C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\dx.bat C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\d8.bat

And the command to create the symlink for dx.jar:

mklink C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\dx.jar C:\Users\username\AppData\Local\Android\Sdk\build-tools\31.0.0\lib\d8.jar

After copying and renaming the mentioned files or running the previous commands to create the symbolic links (shortcuts), you will have new 2 files in the build-tools and build-tools/lib directory:

SDK Build Tools Android API 31

MacOS and Linux

If you are using MacOS or Linux, running the following command in the terminal will do the trick (it switches to the build tools directory and then moves the d8 to dx and d8.jar to dx.jar):

cd ~/Library/Android/sdk/build-tools/31.0.0 && mv d8 dx && cd lib && mv d8.jar dx.jar

Try to build your project in Android Studio once again and the exception shouldn't appear anymore!

Happy coding ❤️!


Senior Software Engineer at Software Medico. Interested in programming since he was 14 years old, Carlos is a self-taught programmer and founder and author of most of the articles at Our Code World.

Sponsors