Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Flutter doctor results with "cmdline-tools component is missing"

I have tried the answers at here & here to no avail.

After installing Android Studio & Flutter on Windows 10, when I run flutter doctor, I get the following:

[√] Flutter (Channel stable, 2.5.0, on Microsoft Windows [Version 10.0.19043.1202], locale en-US)
[X] Android toolchain - develop for Android devices
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
[√] Chrome - develop for the web
[√] Android Studio (version 2020.3)
[√] VS Code (version 1.60.0)
[√] Connected device (2 available)

Opening Android Studio > SDK Manager > Android SDK > SDK Tools uninstalling and re-installing Android SDK Command-line Tools (latest) has no effect.

I have also added <pathToSDK>\tools\bin, <pathToSDK>\platform-tools\, and <pathToSDK>\cmdline-tools\latest\bin to the user PATH environment variables.

Following the flutter instructions and running <pathToSDKManager> --install "cmdline-tools;latest" (Which for me is located in <pathToSDK>\cmdline-tools\latest\bin) results with:

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

I haven't been able to find any documentation on this other than that I need to install some version on Java and add it to my path. The https://flutter.dev/docs/get-started/install/windows page mentions "Make sure that you have a version of Java 8 installed and that your JAVA_HOME environment variable is set to the JDK’s folder." and then states "Android Studio versions 2.2 and higher come with a JDK, so this should already be done." but doesn't elaborate further.

Opening Android Studio and going to File > Project Structure > Project > Project SDK I can see that Android Studio already recognized several versions of Java installed:

enter image description here

like image 939
Jhon Piper Avatar asked Sep 08 '21 23:09

Jhon Piper


People also ask

How do I fix command line tools component is missing in flutter?

Delete the "latest" folder and rename "latest-2" to "latest". This happens when there is a "latest" folder while installing Android SKD command-line tools in SDK manager. In this way, you can solve "cmdline-tools component is missing" error on Flutter.


Video Answer


3 Answers

You can follow below steps in order to ensure proper working of your flutter project: your sdk manager should look something like this:

enter image description here

1. Installing Android SDK Command-line Tools in Android Studio:

Preferences > Appearance & Behavior > System Settings > Android SDK > SDK Tools >

install these 3 tools:

Android SDK Command-line Tools (latest)

Android SDK Build Tools 31

Android SDK Platform tools (latest version 31)

and make sure every tools must be of same latest version in order to avoid any error as there might be new updates later on.

2. Also make sure to Accept Android Licences by running below command in your cmd:

flutter doctor --android-licenses

if anything above didn't worked out make sure you have set the proper JDK/JRE locations in environment variables in system settings of windows:

Add below path in your System environment path variable for user variable as well as your system variable:

 C:\Program Files\Java\jdkXXXXX\bin 

here XXX is your version and this should be added in your sys var and user both

C:\Users\Neha\AppData\Local\Android\Sdk\tools
C:\Users\Neha\AppData\Local\Android\Sdk\build-tools
C:\Users\Neha\AppData\Local\Android\Sdk\platform-tools

the above three paths should be added in your user variable path check two screenshots attached below for proper path settings. I have added android studio's tools path also so do that as I have done in screenshot.

This one is for user variable path:

enter image description here

This one is for system variable path:

enter image description here

Follow source to learn more about setting the path for java:

like image 67
Mithson Avatar answered Oct 19 '22 01:10

Mithson


In the screen you've shown, just use "Android Studio default JDK" (or any other JDK 11).

Settings > Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK.

You'd also need to setup the same path as JAVA_HOME environmental variable, as well as ANDROID_HOME. In Windows, these can be added below Settings > Advanced System Settings > Environmental Variables. Flutter needs these set up to find the CLI tools ... and the problem might not be the CLI tools themselves, but that it doesn't know about the Java SDK or Android SDK at all.

like image 34
Martin Zeitler Avatar answered Oct 19 '22 00:10

Martin Zeitler


enter image description here

Just Install them: Android SDK Command-line Tools (latest) Android SDK Build Tools 31 Android SDK Platform tools (latest version 31)

run: 'flutter doctor --android-licenses'

after run 'flutter doctor' again.

And boom. it will work.

like image 6
Nirjhor 3029 Avatar answered Oct 19 '22 00:10

Nirjhor 3029