简体   繁体   中英

Flutter doctor error - Android sdkmanager tool not found. Windows

I have been going round in circles with this issue, there are so many that people have issues similar to mine, but not one of them is the same. I am trying to get flutter fully set up, but can't resolve one of the issues.

When I run flutter doctor -v I get the following output:

[√] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18362.657], locale en-GB)
    • Flutter version 1.12.13+hotfix.8 at C:\flutter
    • Framework revision 0b8abb4724 (3 weeks ago), 2020-02-11 11:44:36 -0800
    • Engine revision e1e6ced81d
    • Dart version 2.7.0

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\%username%\AppData\Local\Android\Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    X Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed
      instructions.

[√] Android Studio (version 3.6)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 43.0.2
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

[√] VS Code (version 1.42.1)
    • VS Code at C:\Users\%username%\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.8.1

[√] Connected device (1 available)
    • AOSP on IA Emulator • emulator-5554 • android-x86 • Android 9 (API 28) (emulator)

! Doctor found issues in 1 category.

And if I try to run the command flutter doctor --android-licenses I get:

Android sdkmanager tool not found (C:\Users%username%\AppData\Local\Android\Sdk\tools\bin\sdkmanager). Try re-installing or updating your Android SDK, visit https://flutter.dev/setup/#android-setup for detailed instructions.

And it's right, there is no "tools" folder in my SDK folder. How on earth do I fix that, I have installed all the SDK tools. even the NDK (not that flutter picks that up) I have tried creating a tools folder and copying sdkManager,bat (including the bin folder) from build-tools, but that just tells me to update my SDK manager. which when attempted just fails.

It looks like everything still works, it just makes me a little uncomfortable having that issue there.

Any help is much appreciated.

I have just hit the same issue - my resolution was a little simpler:

Just like you, I have Android Studio installed, the key is to install Android SDK Command-line Tools , steps being:

  1. Open Android Studio
  2. Tools Menu, SDK Manager
  3. In the window that comes up there are inner panels, choose SDK Tools panel
  4. Tick Android SDK Command-line Tools
  5. Choose Apply button near the bottom of the window

At that point, you will be prompted to accept the SDK license and the command line tools will be installed. Your license issue should now be resolved.

FYI, the command line tools will add a new folder cmdline-tools inside your SDK Folder. If you look in there cmdline-tools/latest/bin you will see sdkmanager - but your license issue should already be resolved.

Android toolchain - develop for Android devices X cmdline-tools component is missing Run path/to/sdkmanager --install "cmdline-tools;latest"

This error means your " Android SDK Command-line Tools are missing "

  1. Open Android Studio
  2. In the Menu bar , click Tools (4th last)
  3. choose SDK Tools panel
  4. Tick Android SDK Command-line Tools
  5. Click Apply at bottom of the window

IT WILL START DOWNLOADING the missing component

VOTE me UP if it helps you

Go to settings:

前往设置..

Go to the Android SDK:

去安卓sdk

Uncheck the command-line tools:

取消选中命令行工具

Check Show details and uncheck the Android command-line tools and then click on Apply then click OK .

检查显示详细信息并取消选中 android 命令行工具,然后单击应用,然后单击确定

Download this package from https://developer.android.com/studio and extract it. Then go to your android sdk location (C:\Users\Pooja\AppData\Local\Android\Sdk) and paste it with the name tools.

Then close and restart Android Studio and check for updates. After installing updates, close Android Studio.

Open the command line and enter:

flutter doctor --android-licenses

And, finally, press y for accept.

现在输入(Flutter Doctor),不包括括号。

All we be solved.

Open sdk manager from here

在此处输入图像描述

Navigate to the panel titled "SDK Tools"

Then, select **Android Sdk Command-line Tools
Note: If it's already checked then follow the process

  • Uncheck
  • Apply
  • Re-check
  • Apply

在此处输入图像描述

From https://flutter.dev/docs/get-started/install/windows :

Warning: In Android Studio 3.6 or later, you need to manually add the old version of the Android SDK Tools for Flutter to work. To do this:

  • Open the Android Studio SDK Manager

  • In the Android SDK tab, uncheck Hide Obsolete Packages

  • Check Android SDK Tools (Obsolete)

...

This is a known issue that will be addressed in an upcoming version of Flutter.

It's almost 2022, and things seem changed a little bit.

I had my SDK installed on a separate folder and command-line tools were missing. even though I downloaded and extracted it into the SDK folder this error was still there. took me sometime to figure it out.

  • make sure to have correct sdk path. use this if needed flutter config --android-sdk <path-to-your-android-sdk-path>
  • download latest command-line tools from developer.android.com
  • extract downloaded file's content into the SDK folder and make sure it has the following structure
<sdk folder>/cmdline-tools/latest/`
 |- bin
 |- lib
 |- ...

Alternatively, use the following command from any directory of command-line tools you have: <cmdline-tools folder>\bin\sdkmanager --install "cmdline-tools;latest" --sdk_root=<sdk folder>

this may however need you to have relatively new sdkmanager to do the job. so it may not give you expected result if it is too old.


PS: it is not working if the content is under <sdk folder>/tools , <sdk folder>/cmdline-tools or <sdk folder>/cmdline-tools/tools

  1. Scroll down and Download Command line tools from https://developer.android.com/studio#downloads
  2. Put your Downloaded file (tools) in C:\Users\ABC\AppData\ABC\Android\Sdk
  3. Close Android Studio, open Android Studio and check update.
  4. Open command line and paste flutter doctor --android-licenses
  5. Press y to accept
  6. Run flutter doctor and you should be good.

无需卸载 android studio 你需要做的只是去 andriod studio 应用去 android sdk 并安装 cmdline 工具包然后关闭应用并输入 flutter doctor 你会得到它安装

I encounter the same issue as yours. What I do is to (at least for now...):

  1. uninstall Android Studio 3.6 or 3.6.1
  2. delete the whole Android SDK directory at C:\Users{your_user_name}\AppData\Local\Android\Sdk
  3. install Android Studio 3.5.3 . You can find it here( https://developer.android.com/studio/archive ) Run the studio again. Do not import the setting of 3.6, and delete them when prompted.
  4. go through the Android Studio "Welcome Wizard" again, use standard option.
  5. after the installation, you will see that the "tools" folder exists.
  6. you will need to install the plugins for dart and flutter again in "Configure"-->"SDK Manager"-->"plugins" within in Android Studio.

This is the android path, in case you use Android Studio

在此处输入图片说明

If you're not necessarily on Android Studio (eg CLI or VS Code) and still facing this issue like I was, consider this related question and the relevant answers therein: I am getting this errors "cmdline-tools component is missing" after installing flutter and android studio... i added andorid sdk. how to solve them?

I have noticed when running android studio from commandline:

Observed package id 'build-tools;32.0.0-rc1' in inconsistent location '/home/kobi/Android/Sdk/build-tools/32.0.0-rc1-2' (Expected '/home/kobi/Android/Sdk/build-tools/32.0.0-rc1')

after I changed the export path in ~/.bashrc , flutter doctor was able to recognize and said all is ok. (though had to accept licenses)

Run 'flutter config --android-'flutter config --android-sdk <path-to/android/sdk>sdk <path-to/android/sdk>

If you have sdkmanager in the env, you can run the command:

sdkmanager --install "cmdline-tools;latest"

If it is not defined as an environment variable, you can go to the sdkmanager folder and run it there. It would be something like this below:

/home/User/path-Android/cmdline-tools/bin/sdkmanager --install "cmdline-tools;latest"

And then just run flutter's doctor again. Good code.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM