Understanding the Issue
When starting a new Android project or building an existing one, you might encounter an error message in Android Studio indicating that your installed Build Tools revision is corrupted. This typically appears with errors like "Installed Build Tools revision 31.0.0 is corrupted." This issue can be frustrating, especially for beginners, but it usually stems from a mismatch or missing files within your Android SDK installation.
Identifying the Root Cause
The error arises because the necessary build tools, specifically dx.bat (on Windows) or dx (on macOS/Linux) and dx.jar, are either missing or incorrectly named within your Android SDK’s build-tools directory. Recent Android SDK updates have transitioned from using dx to d8 as the default dex compiler. However, older Gradle plugin versions might still expect to find dx, leading to this error.
Solution: Renaming Files
The most common and effective solution involves renaming the d8 files to dx within the appropriate directories. This ensures that the build process can locate the expected files.
Steps:
1. Locate the Build Tools Directory:
The location of your Android SDK will vary based on your operating system and installation choices. Here are common locations:
- Windows:
C:\Users\<YourUsername>\AppData\Local\Android\Sdk\build-tools\<version>(e.g.,C:\Users\YourUsername\AppData\Local\Android\Sdk\build-tools\31.0.0) - macOS/Linux:
/Users/<YourUsername>/Library/Android/sdk/build-tools/<version>(e.g.,/Users/YourUsername/Library/Android/sdk/build-tools/31.0.0)
Remember that AppData on Windows and Library on macOS/Linux are often hidden folders. You may need to configure your file explorer to show hidden files and folders.
2. Rename d8.bat to dx.bat (Windows Only):
Within the build-tools directory (e.g., 31.0.0), locate the file d8.bat and rename it to dx.bat.
3. Rename d8.jar to dx.jar:
Inside the lib subdirectory within the build-tools directory (e.g., C:\Users\YourUsername\AppData\Local\Android\Sdk\build-tools\31.0.0\lib), locate d8.jar and rename it to dx.jar.
Specific Instructions for macOS/Linux (Using Terminal):
Open your terminal and execute the following commands, replacing <YourUsername> with your actual username:
cd ~/Library/Android/sdk/build-tools/31.0.0
mv d8 dx
cd lib
mv d8.jar dx.jar
Alternative Solution: Updating or Downgrading Build Tools & Gradle
If renaming the files doesn’t resolve the issue, consider the following:
-
Update Android Studio and SDK: Ensure you’re using the latest version of Android Studio and that your SDK components are up to date.
-
Adjust
build.gradleSettings: In your project’sbuild.gradle(Module: app) file, you can try changing thecompileSdkVersion,buildToolsVersion, andtargetSdkVersionto match an installed SDK version. After making changes, sync your project.android { compileSdkVersion 30 buildToolsVersion "30.0.3" // ... other settings } -
Upgrade AGP (Android Gradle Plugin): Consider upgrading your Android Gradle Plugin (AGP) to version 7.x. This newer version is better equipped to handle the transition to
d8.
Best Practices & Troubleshooting
- Regularly Update: Keep your Android Studio, SDK, and Gradle plugin updated to benefit from the latest bug fixes and improvements.
- Verify SDK Installation: Double-check that the specified build-tools version in your
build.gradlefile is actually installed in your SDK. - Sync Project: After making any changes to your
build.gradlefile, always sync your project with the Gradle files. - Clean Build: If you continue to encounter issues, try cleaning your project (Build > Clean Project) and then rebuilding it.