Cmdline-tools: не удалось определить корень SDK

C:\Android\sdk\bin>sdkmanager Ошибка: не удалось определить корень SDK. Ошибка: либо укажите это явно с --sdk_root=, либо переместите этот пакет в ожидаемое место: \cmdline-tools\latest\

это выглядит так, даже после указания корня в переменных env. ANDROID_SDK_ROOT C:\Android\sdk

Я использую 64-битную машину Windows 10, я хочу запустить флаттер без студии Android, поэтому следуйте инструкциям на этой странице https://medium.com/@quicky316/install-flutter-sdk-on-windows-without-android- студия-102fdf567ce4

93
0
72 845
15
Перейти к ответу Данный вопрос помечен как решенный

Ответы 15

Ответ принят как подходящий

Начиная с новых обновлений, есть некоторые изменения, которые не упомянуты в документации. После распаковки пакета инструментов командной строки, самый верхний каталог, который вы получите, — это cmdline-tools. Переименуйте распакованный каталог из cmdline-tools в tools и поместите его в папку $C:/Android/cmdline-tools.

теперь это будет выглядеть $C:/Android/cmdline-tools/инструменты

и он будет работать идеально.

гениально!! как вы нашли это решение?

Mirjalal 10.08.2021 11:37

Андроид есть Андроид. Они включили несколько предупреждений в результаты командной строки, например это: Error: Either specify it explicitly with --sdk_root= or move this package into its expected location: <sdk>/cmdline-tools/latest/

Paulo Cheque 31.03.2022 22:23

работал у меня и на Mac.

Ahsan Tarique 06.07.2022 23:13

Как я пытался, просто убедитесь, что вы добавили каталог «tools» и переместили все остальное в «cmdline-tools» в «tools», этого достаточно. Мне не нужно помещать его в каталог C:/Android.

Jcyrss 15.04.2023 05:11

У меня была структура папок C:/Android/android-sdk/cmdline-tools. Когда структура папок изменилась, как указано выше (C:/Android/cmdline-tools/tools), все заработало!

DiluzFerz 29.04.2023 14:41

Если вы не хотите перемещать его в другое место, вы можете использовать --sdk_root, чтобы указать папку, в которую вы хотите установить и загрузить Android SDK.

Например, если вы хотите использовать: X:\Dev\AndroidSDK и вы загрузили и разархивировали пакет инструментов командной строки в эту папку, у вас будет этот путь: X:\Dev\AndroidSDK\cmdline-tools\bin для sdkmanager.bat.

Итак, ваша команда будет:

X:\Dev\AndroidSDK\cmdline-tools\bin>.\sdkmanager.bat --sdk_root=X:\Dev\AndroidSDK

PS: Не используйте пробелы в пути к AndroidSDK, иначе он не будет работать.

Вы можете создать папку latest внутри своего cmdline-tools и переместить все ее содержимое внутрь этой папки. Итак, ваш полный путь будет C:\Android\cmdline-tools\latest\bin. Используя эту конфигурацию, нет необходимости определять переменную среды ANDROID_SDK_ROOT или параметр --sdk_root=. Предполагается, что ваша папка SDK — это C:\Android, и в нее будут помещены все ваши файлы (системные образы, лицензии и т. д.).

этот ответ не только для самого андроида. он решил мою проблему flutter doctor --android-licenses за один раз: «Android sdkmanager не найден. Обновите до последней версии Android SDK и убедитесь, что для решения этой проблемы установлены инструменты cmdline».

Yılmaz Durmaz 24.11.2021 16:17

если вы получите сообщение об ошибке Ошибка: не удалось определить корень SDK. Ошибка: либо укажите это явно с --sdk_root=, либо переместите этот пакет в ожидаемое место: \cmdline-tools\latest\

затем используйте команду с корнем sdk, указанным как:

sdkmanager --sdk_root=path-to-where-cmdline-tools-это "инструменты платформы" "платформы; android-29"

Загрузка Android SDK 29+ (инструменты командной строки для Android) с сайта https://developer.android.com/studio#downloads.

Для «commandlinetools-linux-7302050_latest.zip» процесс отличался от предыдущих подходов. Раньше после распаковки верхняя папка называлась tools, а теперь верхняя папка называется cmdline-tools.

Проблема, похоже, в том, что sdkmanager должен находиться в среде с именем. /YOURPATH/cmdline-tools/SOMETHING/bin, но все равно распаковывается в /YOURPATH/cmdline-tools/bin для Linux.

если вы получите

Ошибка: не удалось определить корень SDK.

Ошибка: либо укажите это явно с помощью --sdk_root=, либо переместите это пакет в ожидаемое место: <sdk>/cmdline-tools/latest/

Распакуйте и убедитесь, что у вас есть этот путь к sdkmanager. /YOURPATH/cmdline-tools/latest/bin/sdkmanager

Как

Чтобы это заработало, сначала создайте путь к предполагаемому Android SDK /opt/android-sdk/cmdline-tools/, затем распакуйте zip-файл SDK в это место, и у вас будет

/opt/android-sdk/cmdline-tools/cmdline-tools/bin/sdkmanager

Теперь переименуйте второй «cmdline-tools» в «последний».

/opt/android-sdk/cmdline-tools/latest/bin/sdkmanager

И теперь это должно работать.

Некоторые из приведенных ниже ответов могли сработать для других, но в моем случае они не сработали, пока я не понял это.

  1. Не меняйте имя каталога при распаковке zip-файла. (cmdline-инструменты)
  2. откройте файл source.property с помощью блокнота или любого соответствующего редактора, чтобы проверить версию менеджера SDK.
  3. Обновите пути к системным переменным, т.е. $C:/Android/cmdline-tools/4.0/bin в этом контексте 4.0 — это моя версия диспетчера SDK после написания этого, а затем закройте терминал, снова откройте его и запустите sdkmanager --version

Удачи Наслаждайтесь процессом разработки!

  1. Вам нужно поместить все файлы и папки в эту новую папку tools

       `C:/Android/cmdline-tools/tools`
    

ИЛИ Альтернативный шаг

2.1. тип cmd C:\Android\cmdline-tools\bin

2.2. напишите в подсказке sdkmanager.bat --sdk_root=C:\Android

• Перейти к извлеченной папке android-sdk\cmdline-tools
• Создайте в ней папку с именем last.
• Вырезать bin , lib ... и т. д. и вставить в последнюю папку.
• Перейдите в папку cmd android-sdk\cmdline-tools\latest и выполните:

sdkmanager “platform-tools” “platforms;android-28”

Это решает проблему

Я наткнулся на этот ответ, когда пытался принять лицензию пакета для пакета Android с помощью sdkmanager.

Откройте папку bin (я скачал со стороны Android, https://developer.android.com/studio#downloads) Я получил инструменты cmdline отсюда.

Сначала я попробовал это bin> %ANDROID_HOME%\tools\bin\sdkmanager.bat --licenses

Получил ошибку - не удалось определить спросить root

Потом попробовал этот

bin>sdkmanager.bat --licenses --sdk-root\E:\Android

измените путь на такой

C:/Android/cmdline-tools/tools/bin 

это сработало для меня отлично

Я успешно настроил инструменты командной строки на своем Mac.

  • Биг Сур 11.6.4
  • commandlinetools-mac-8092744_latest.zip (6,0)

Скачал zip архив и разархивировал его.

% unzip commandlinetools-mac-8092744_latest.zip
% mv cmdline-tools latest
% mkdir sdk
% mkdir sdk/cmdline-tools
% mv latest sdk/cmdline-tools

Это выглядит так.

┌ sdk
│    ├ cmdline-tools
│    │     ├ latest
│    │     │     ├ bin
│    │     │     ├ lib
│    │     │     ├ NOTICE.txt
│    │     │     ├ source.properties

беги sdkmanager

% ./sdk/cmdline-tools/latest/bin/sdkmanager
[============================] 100% Computing updates...

Я столкнулся с этой ошибкой на сервере Ubuntu 18.04, и похоже, что проблема связана с путем. Он должен отличаться от того, что дается при загрузке zip. Вот что я сделал, чтобы решить проблему в моем случае:

~> wget https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip

~> unzip commandlinetools-linux-8092744_latest.zip

~> mkdir android-sdk

~> mv cmdline-tools android-sdk

~> cd android-sdk/cmdline-tools; mkdir latest 

~> mv ./* latest

# */ So the path will be now :
# android-sdk/cmdline-tools/latest/bin

# instead of android-sdk/cmdline-tools/bin

~> nano ~/.bashrc

# add these two lines :

export ANDROID_HOME=$HOME/android-sdk
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH

# save the file

source ~/.bashrc

# Try this now, it should work.

sdkmanager --list 

Я устанавливаю Android Studio для Flutter на свой Mac. Следующие шаги решают проблему:

  1. Исходная распакованная папка — cmdline-tools. Измените иерархию папок на cmdline-tools > latest. Это означает создание нового каталога latest под cmdline-tools и перемещение всего в latest. TL;DR Если вы внимательно посмотрите на имя zip-файла, вы обнаружите, что его имя указывает на то, что это самый последний архив. У вас может быть много версий cmdline-tools, но каталог latest означает, что внутри него находится самая последняя версия. Давайте, почему мы должны создать новый каталог.

  2. Узнайте, где находится Android SDK. Откройте Android Studio и перейдите к Preference > Appearance & Behavior > System Settings > Android SDK. Android SDK Location — это место, где установлен ваш Android SDK. Для меня это /Users/myname/Library/Android/sdk. Откройте Finder и перейдите к нему.

  3. Переместите cmdline-tools в каталог sdk. Дважды проверьте, что у вас есть sdkmanager под /Users/myname/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager

  4. Следуйте тому, что Flutter предлагает нам делать. Запустите /Users/myname/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager --install "cmdline-tools;latest" в своем терминале. Это говорит о том, где находится последний sdkmanager.

  5. Снова запустите flutter doctor -v в своем терминале. Проблема должна быть исправлена.

Мое решение на macOS:

  - apt-get --quiet update --yes
  - apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1
  - wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip

  # unzip the zip and name it with 'android-sdk'
  - unzip -d android-sdk android-sdk.zip

  # you can remove useless zip if you want
  - rm android-sdk.zip 

  # create a new directory android-sdk-latest
  - mkdir android-sdk-latest; cd android-sdk-latest
  - mkdir cmdline-tools; cd cmdline-tools
  # create a new directory: android-sdk-latest/cmdline-tools/latest
  - mkdir latest
  - cd ../..

  # then move all files to new created latest directory
  - mv android-sdk/cmdline-tools/* android-sdk-latest/cmdline-tools/latest

  - export ANDROID_HOME=$PWD/android-sdk-latest
  - export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH

  - echo y | android-sdk-latest/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
  - echo y | android-sdk-latest/cmdline-tools/latest/bin/sdkmanager "platform-tools" >/dev/null
  - echo y | android-sdk-latest/cmdline-tools/latest/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null

У меня проблема, когда я хочу удалить весь файл в новый созданный последний каталог: не могу удалить последний до последнего/последнего. Поэтому я сделал это, чтобы решить проблему.

Вы также можете удалить каталог android-sdk после удаления всех подфайлов и изменить имя android-sdk-latest на android-sdk.

Надеюсь, это поможет вам.

Попробуйте следующую команду, она будет работать отлично:

sdkmanager --sdk_root=path-to-where-cmdline-tools-is "platform-tools" "platforms;android-29"

Нет объяснения, почему этот ответ должен работать, и даже когда я пытаюсь запустить предложенную команду, я получаю Failed to create SDK root dir: path-to-where-cmdline-tools-is

Nikitas IO 05.03.2023 22:15

Другие вопросы по теме