The issue

Today, I need to build a new Ionic project to an Android APK file but stucked at this error

Build-tool 33.0.1 is missing DX at /Users/user/Library/Android/sdk/build-tools/33.0.1/dx

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Installed Build Tools revision 33.0.1 is corrupted. Remove and install again using the SDK Manager.

I do follow the guide, open Android Studio, go to SDK Manager and then re-install the Build Tools 33.0.1 (latest at this time) but have no luck :( - the issue still happend…

SDK Manger

After spent a half day to find and try many solutions from the Google search results. Finally, I could fix this issue by just simply renaming 2 files! The command ionic cordova build android is just working perfectly again for me.

You could get the solution below, I keep all the content from the original article that I found on Stackoverflow.

Solution

First of all, I faced this issue in Android Studio 4.2.2 and you do not need to downgrade the SDK build tool from 31 to 30 or change compile SDK version.

The main problem is the two files missing in SDK build tool 31 that are:

  1. dx.bat
  2. dx.jar

The solution is that these files are named d8 in the file location so changing their name to dx will solve the error.

The steps are below.

For Windows

  1. go to the location
"C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0"
  1. find a file named d8.bat. This is a Windows batch file.

  2. rename d8.bat to dx.bat.

  3. in the folder lib

("C:\Users\user\AppData\Local\Android\Sdk\build-tools\31.0.0\lib")
  1. rename d8.jar to dx.jar

Remember AppData is a hidden folder. Turn on hidden items to see the AppData folder.

For macOS or Linux

Run the following in the Terminal:

# change below to your Android SDK path
cd ~/Library/Android/sdk/build-tools/31.0.0 \
  && mv d8 dx \
  && cd lib  \
  && mv d8.jar dx.jar

Now run your project.

Remember to replace the above path (included build tool version) with your correct path.