Resolving "UnsupportedClassVersionError" for Android SDK Manager in Flutter
Problem Statement
When setting up Flutter on Linux (Ubuntu), you might encounter this error when running flutter doctor --android-licenses:
java.lang.UnsupportedClassVersionError:
com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled
by a more recent version of the Java Runtime (class file version 61.0),
this version of the Java Runtime only recognizes class file versions up to 55.0This occurs because Android SDK Command-line Tools (latest) require Java 17 (class version 61.0), but your current Java version (version 55.0 = Java 11) is outdated. The error prevents you from accepting Android SDK licenses needed for Flutter development.
Solutions
Recommended Solution: Update Java
Upgrade to Java 17 or newer and configure it correctly:
Install Java 17 on Ubuntu:
bashsudo apt update sudo apt install openjdk-17-jdkSet
JAVA_HOMEenvironment variable:bash# Add to ~/.bashrc or ~/.zshrc export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATHWARNING
Verify the exact path with
ls /usr/lib/jvmas your directory structure might varyConfirm Java version:
bashjava -version # Should output "openjdk 17.x.x"Run license acceptance:
bashflutter doctor --android-licenses # Accept all licenses with 'y'
Alternative Solution: Use Older SDK Tools (Workaround)
If upgrading Java isn't feasible, install compatible Android SDK Command-line Tools:
In Android Studio:
- Open Tools > SDK Manager > SDK Tools
- Uncheck Android SDK Command-line Tools (latest)
- Check Android SDK Command-line Tools 8.0
- Click Apply

Rename tools directory:
bash# Ubuntu/Mac cd ~/Android/Sdk/cmdline-tools mv 8.0 latestTIP
For Windows, navigate to:
C:\Users\<USERNAME>\AppData\Local\Android\Sdk\cmdline-toolsVerify solution:
bashflutter doctor --android-licenses
Why These Solutions Work
- Java 17+ provides required runtime support for the latest Android tools
- The class version error specifically indicates a Java version mismatch
- Installing older tools (v8.0) works because they support Java 11 environments
- Renaming the folder satisfies Flutter's path expectations for
cmdline-tools/latest
Caveat
The workaround may limit access to newer Android features. Use it only for local development if upgrading Java isn't possible.
For long-term stability, always:
- Keep Android Studio updated
- Maintain current JDK installations
- Run
flutter upgraderegularly