У меня чертовски много времени, чтобы получить Flutter , чтобы найти инструменты командной строки SDK . Я пытаюсь установить последний, скачав zip-архив по этой ссылке и распаковав его, скажем, ${HOME}/Android
. Это создает каталог tools
, и если я запускаю исполняемый файл
${HOME}/Android/tools/bin/sdkmanager
напрямую (с любым количеством параметров и т. Д. c.), Я всегда получаю ошибку, как описано в this other пост . Рекомендуемое там решение действительно работает: переместите каталог tools
дальше по дереву, чтобы получить путь
${HOME}/Android/cmdline-tools/tools/bin/sdkmanager
Этот новый промежуточный каталог должен называться cmdline-tools
; Я пробовал другие вещи (Sdk
, sdk_manager
, и c.), Но безрезультатно: возникают те же ошибки.
Теперь, ковыряясь в клонированном репозитории Flutter , я вижу в файл dev/bots/download_android_sdk.sh
, который должен иметь исполняемый файл
$ANDROID_SDK_ROOT/tools/bin/sdkmanager
Это подсказывает мне, что в моей настройке мне нужно
ANDROID_SDK_ROOT=${HOME}/Android/cmdline-tools
экспортировать это и запускать кучу sdkmanager
команд установки (например,
$ANDROID_SDK_ROOT/tools/bin/sdkmanager platform-tools
и т.п.) Я вижу что мой каталог ${HOME}/Android
начинает заполняться соответствующими каталогами platform-tools
, build-tools
, et c. Таким образом, эти недавно установленные каталоги живут на том же уровне, что и мой $ANDROID_SDK_ROOT
, который помню, что когда я это делаю, он установлен на $HOME/Android/cmdline-tools
.
С другой стороны, когда я затем go посмотрите (в том же репозитории Flutter) в файле
packages/flutter_tools/lib/src/android/android_sdk.dart
Я вижу, что у меня должен быть каталог $ANDROID_SDK_ROOT/build-tools
. Это находится в прямом противоречии с предыдущим наблюдением, что build-tools
и подобные должны быть на том же уровне, что и $ANDROID_SDK_ROOT
, а не под it.
Моя проблема в том, что я не знаю, как разрешить это очевидное противоречие в кодовой базе Flutter. Что это? В моей настройке ANDROID_SDK_ROOT
должно быть $HOME/Android
или $HOME/Android/cmdline-tools
?
PS
Я понимаю , что $ANDROID_SDK_ROOT
должен быть «каталогом установки SDK», но в этом контексте это мне ничего не говорит: в конце концов , установка SDK
- это именно то, что я пытаюсь сделать.