Search code examples
androidflutterandroid-sdk-toolsandroid-sdk-manager

“Android license status unknown” in flutter doctor


I am getting an error with Android Sdk when I run flutter doctor on command-line

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v1.4.9-hotfix.1, on Mac OS X 10.14.4 18E226, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit
      https://flutter.io/setup/#android-setup for detailed instructions.
[✓] iOS toolchain - develop for iOS devices (Xcode 10.2)
[✓] Android Studio (version 3.3)
[✓] VS Code (version 1.33.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

After following several possible fixes from the stackoverflow community, i still couldn't get it to work. Please i need assistance.


Solution

  • Here's what worked for me

    Fix 1:

    • Launch Android studio & Open the SDK manager (Top-right of Android studio)
    • Navigate to SDK Tab and look for Android SDK Platform-Tools
    • If it's checked, unchecked it and click 'Apply' (We're trying to uninstall the previous version)
    • Now the "SDK Tools" is uninstalled. Let's re-install it by checking the box and clicking 'Apply'
    • Hit Ok & Restart Android studio
    • Navigate to SDK install location at %USERPROFILE%\AppData\Local\Android\Sdk for windows, you should see a new folder tools Note: If you don't see the tools folder don't panic, i got you covered.
    • Open the tools folder & navigate to bin
    • Copy the folder path (i.e C:\Users\USERNAME%\AppData\Local\Android\Sdk\tools\bin)
    • Add that path to Environmental variables
    • Now you should have access to sdkmanager in the command-line. Try it out by typing sdkmanager & hitting enter in CMD.
    • If you get 'sdkmanager' is not recognized as an internal or external command, operable program or batch file. you probably made a mistake while adding the path to System Environmental Variables. Fix that.
    • Go to Flutter sdk folder (i.e c:/src/flutter) & launch the flutter_console.bat file
    • Now type the command flutter doctor --android-licenses and it should work. Accept all by typing y and hitting ENTER
    • And don't forget to run flutter doctor

    Fix 2:

    PS: Only if Fix 1 does not work for you!

    • Open your browser & goto Command line tools only (bottom of the page)
    • Download the appropriate package for your platform
    • Unzip it & Yes! You should see the tools folder
    • After extraction, copy the tools folder to C:\Users\USERNAME%\AppData\Local\Android\Sdk

      Now the same as Fix 1 above,

    • Open the tools folder & navigate to bin

    • Copy the folder path (i.e C:\Users\USERNAME%\AppData\Local\Android\Sdk\tools\bin)
    • Add that path to Environmental variables
    • Now you should have access to sdkmanager in the command-line. Try it out by typing sdkmanager & hitting enter in CMD.
    • If you get 'sdkmanager' is not recognized as an internal or external command, operable program or batch file. you probably made a mistake while adding the path to System Environmental Variables. Fix that.
    • NO you're not done
    • The SDK Platform tools you downloaded is probably outdated (as you can see when you run the sdkmanager command from the command-line)
    • Now let's handover to Android Studio to do the rest. Restart Android Studio, so it can recognize the tools folder you added.
    • After Restart, Android Studio should automatically detect the outdated Platform-tools and prompt you to update (You must be connected to the internet!).
    • IF UPDATE PROMPT DOES NOT SHOW UP
    • Open SDK Manager in Android studio,
    • Go to UPDATES
    • Click Check Now
    • And you should get the PROMPT to update Platform-Tools

    Fix 3:

    • Do everything in Fix 2
    • Open Environmental Variables, Create a new Variable JAVA_HOME and set the value to the JRE/bin (get it from Android studio install location in Program Files)
    • Open the command line type set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee' for windows & export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee' for Linux

    And that's it you can now run flutter doctor --android-licenses on the command-line; Accept all licenses by typing y and hitting ENTER. And don't forget to run flutter doctor

    THAT'S THE FIX. I HOPE IT WORKS FOR YOU TOO