# Flutter: “cmdline-tools component is missing” (flutter doctor)

> flutter doctor says cmdline-tools component is missing and Android license status unknown. Install the Command-line Tools, then accept the licenses.

Canonical: https://app369.com/fix/flutter-cmdline-tools-component-is-missing/
Last updated: 2026-11-08

flutter doctor shows a red X under Android toolchain: cmdline-tools component is missing, often followed by Android license status unknown, and flutter doctor --android-licenses may say Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are in the path. Android Studio installs the SDK but not always the Android SDK Command-line Tools, and Flutter needs them to check and accept the SDK licenses. Builds may still work, but doctor won’t pass until they are there.

**Short answer**

Open Android Studio, Settings, Languages & Frameworks, Android SDK, SDK Tools tab, tick Android SDK Command-line Tools (latest) and click Apply. Then run flutter doctor --android-licenses, answer y to each license, and run flutter doctor again. If doctor still can’t find them, point Flutter at the SDK with flutter config --android-sdk.

## **Why doctor can’t find the tools, and the fix**

1. 01 ### **The Command-line Tools were never installed**
  > “Switch to the SDK Tools tab. Verify that the following SDK Tools have been selected: Android SDK Build-Tools Android SDK Command-line Tools” [**Flutter, Set up Android development**](https://docs.flutter.dev/platform-integration/android/setup) The SDK Platform and Platform-Tools come with Android Studio; the Command-line Tools are a separate item in the SDK Tools tab. Tick it, apply, and let the download finish. Without Android Studio, run the command doctor prints: sdkmanager --install "cmdline-tools;latest".
2. 02 ### **The licenses haven’t been accepted**
  > “Run the following command to review and sign the SDK licenses.” [**Flutter, Set up Android development**](https://docs.flutter.dev/platform-integration/android/setup) With the tools installed, Android license status unknown means the licenses still need your yes. Run the command, read each license, and type y.```
flutter doctor --android-licenses
flutter doctor -v
```
3. 03 ### **A manual SDK install in the wrong folder layout**
  > “In the unzipped cmdline-tools directory, create a sub-directory called latest.” [**Android Developers, sdkmanager**](https://developer.android.com/tools/sdkmanager) On a build server or a machine without Android Studio, the command-line tools zip has to sit in cmdline-tools/latest inside the SDK folder. Unzipped one level too high, or left in a version folder such as cmdline-tools/10.0, sdkmanager and Flutter may not find it.```
# inside your Android SDK folder
mkdir -p cmdline-tools/latest
# move bin/, lib/, NOTICE.txt and source.properties from the zip into cmdline-tools/latest
cmdline-tools/latest/bin/sdkmanager --install "platform-tools" "platforms;android-35" "build-tools;35.0.0"
```
4. 04 ### **Flutter is looking at a different SDK** If Android Studio shows the tools installed but doctor still complains, Flutter is reading another SDK path, for example an old ANDROID_HOME. Point it at the SDK Android Studio uses (usually ~/Library/Android/sdk on a Mac, ~/Android/Sdk on Linux, C:\Users\YOU\AppData\Local\Android\Sdk on Windows), then rerun doctor.```
flutter config --android-sdk ~/Library/Android/sdk
flutter doctor -v
```

Checked against the vendor’s docs on November 8, 2026: [Flutter: Set up Android development](https://docs.flutter.dev/platform-integration/android/setup); [Android Developers: sdkmanager (command-line tools layout)](https://developer.android.com/tools/sdkmanager).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.****No issues worth fixing, no charge.**** If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.**See scope and start**](https://app369.com/fixed-price/ai-app-rescue/)

Related: [**Android “SDK location not found”**](https://app369.com/fix/android-sdk-location-not-found/) · [**flutter: command not found**](https://app369.com/fix/flutter-command-not-found/) · [**Gradle “Could not resolve all files”**](https://app369.com/fix/android-gradle-could-not-resolve-all-files/) · [**Flutter “type 'Null' is not a subtype of type 'String'”**](https://app369.com/fix/flutter-type-null-is-not-a-subtype-of-type-string/)

Questions

## **More on this error**

<details>

<summary>**The licenses command fails with a Java error. Why? **+</summary>

Old command-line tools fail on Java 9 and later with errors such as NoClassDefFoundError for javax/xml/bind. Install the latest Command-line Tools from the SDK Tools tab; they need a recent JDK (17 or later), and Android Studio’s bundled JDK works. flutter doctor -v shows which Java Flutter uses.

</details>

<details>

<summary>**Can I ignore it if my app builds? **+</summary>

Release builds and CI checks may need accepted licenses and the tools, so fix it once on each machine rather than leave doctor red.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

</details>

A different error?

## **Describe it and get a written quote**

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)