Skip to content

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:

text
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.0

This 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

Upgrade to Java 17 or newer and configure it correctly:

  1. Install Java 17 on Ubuntu:

    bash
    sudo apt update
    sudo apt install openjdk-17-jdk
  2. Set JAVA_HOME environment variable:

    bash
    # Add to ~/.bashrc or ~/.zshrc
    export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH

    WARNING

    Verify the exact path with ls /usr/lib/jvm as your directory structure might vary

  3. Confirm Java version:

    bash
    java -version
    # Should output "openjdk 17.x.x"
  4. Run license acceptance:

    bash
    flutter 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:

  1. 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

    Install Android SDK Command-line Tools 8.0

  2. Rename tools directory:

    bash
    # Ubuntu/Mac
    cd ~/Android/Sdk/cmdline-tools
    mv 8.0 latest

    TIP

    For Windows, navigate to: C:\Users\<USERNAME>\AppData\Local\Android\Sdk\cmdline-tools

  3. Verify solution:

    bash
    flutter 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:

  1. Keep Android Studio updated
  2. Maintain current JDK installations
  3. Run flutter upgrade regularly