flutter doctor – не удалось найти android sdk на ubuntu

Вопрос или проблема

Запуск flutter doctor -v на моей установке 24.04.1 сообщает о следующих проблемах

  • Не удалось найти Android SDK
  • Не обнаружены действительные платформы Android SDK в /usr/local/android-sdk/platforms. Директория была пустой.
  • Не удалось определить версию Android Studio

Что я пробовал

Запуск ./sdkmanager --list_installed вернул

$ cd /usr/local/android-sdk/cmdline-tools/latest/bin
$ ./sdkmanager --list_installed
[=======================================] 100% Получение удаленного репозитория...       
Установленные пакеты:
  Путь           | Версия | Описание                       | Локация      
  -------        | ------- | -------                           | -------       
  platform-tools | 35.0.2  | Платформа инструментов SDK Android 35.0.2 | platform-tools

Так что я также запустил

$ cd /usr/local/android-sdk/cmdline-tools/latest/bin
$ sudo ./sdkmanager "emulator"
$ sudo ./sdkmanager "build-tools;35.0.0"
$ sudo ./sdkmanager "cmdline-tools;latest"

Теперь ./sdkmanager --list_installed возвращает

/usr/local/android-sdk/cmdline-tools/latest/bin$ ./sdkmanager --list_installed
[=======================================] 100% Получение удаленного репозитория...       
Установленные пакеты:
Путь              | Версия | Описание        | Локация            
-------           | ------- | -------            | -------             
build-tools;35.0.0| 35.0.0  | Инструменты сборки SDK 35 | build-tools/35.0.0  
cmdline-tools;latest| 16.0  | Командные инструменты SDK | cmdline-tools/latest
emulator          | 35.2.10 | Эмулятор           | emulator            
platform-tools    | 35.0.2  | Платформа инструментов SDK 35.0.2 | platform-tools      

Последние строки моего ~/.bashrc следующие

export ANDROID_HOME=/usr/local/android-sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Запуск tree -dL 2 /usr/local/android-sdk возвращает

/usr/local/android-sdk
├── build-tools
│   └── 35.0.0
├── cmdline-tools
│   └── latest
├── emulator
│   ├── bin64
│   ├── include
│   ├── lib
│   ├── lib64
│   ├── qemu
│   └── resources
├── licenses
└── platform-tools
    └── lib64

Проблема по-прежнему осталась

Это вывод flutter doctor -v

[!] Android toolchain - разработка для устройств Android
    • Android SDK по адресу /usr/local/android-sdk
    ✗ Не удалось найти Android SDK.
      Установите Android Studio с: https://developer.android.com/studio/index.html
      При первом запуске она поможет вам установить компоненты Android SDK.
      (или посетите https://flutter.dev/to/linux-android-setup для подробных инструкций).
      Если Android SDK был установлен в пользовательское местоположение, используйте
      `flutter config --android-sdk`, чтобы обновить его до этого местоположения.

    • ANDROID_HOME = /usr/local/android-sdk
    ✗ Не обнаружены действительные платформы Android SDK в /usr/local/android-sdk/platforms. Директория была пустой.
    • Попробуйте переустановить или обновить Android SDK,
      посетите https://flutter.dev/to/linux-android-setup для подробных инструкций.

[!] Android Studio (версия неизвестна)
    • Android Studio по адресу /opt/android-studio
    • Плагин Flutter можно установить с:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Плагин Dart можно установить с:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Не удалось определить версию Android Studio.
    • Версия Java OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

Вопрос

Что еще я могу сделать, чтобы исправить

  • Не удалось найти Android SDK
  • Не обнаружены действительные платформы Android SDK в /usr/local/android-sdk/platforms

Ответ или решение

Для решения проблемы с сообщениями "Unable to locate Android SDK" и "No valid Android SDK platforms found in /usr/local/android-sdk/platforms" в вашем окружении Ubuntu 24.04.1, необходимо учесть несколько важных моментов.

1. Проверьте структуру каталога Android SDK

Сначала убедитесь, что структура каталогов вашего Android SDK верна. На основании предоставленной вами информации, директорий platforms не существует, поэтому Flutter не может обнаружить валидные платформы Android. Чтобы это исправить, вам нужно установить соответствующие платформы.

2. Установка платформ Android SDK

Вам нужно использовать инструмент sdkmanager, который уже установлен у вас. Для этого выполните следующие команды:

cd /usr/local/android-sdk/cmdline-tools/latest/bin
sudo ./sdkmanager "platforms;android-31"

Вместо android-31 вы можете указать другую версию платформы, если необходимо. После установки, проверьте, что директория platforms наполнена содержимым:

tree -dL 2 /usr/local/android-sdk

3. Обновление переменных окружения

Убедитесь, что переменные окружения правильно настроены. Откройте файл ~/.bashrc, и убедитесь, что у вас есть следующее:

export ANDROID_HOME=/usr/local/android-sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin

После внесения изменений, не забудьте обновить вашу среду:

source ~/.bashrc

4. Проверка конфигурации Flutter

Запустите команду для указания пути к вашему Android SDK:

flutter config --android-sdk /usr/local/android-sdk

Затем проверьте состояние с помощью:

flutter doctor -v

5. Установка Android Studio и проверка

Если проблемы все еще сохраняются, убедитесь, что Android Studio установлена правильно. Вы можете скачать и установить Android Studio с официального сайта: Android Studio. После установки откройте Android Studio, и следуйте инструкциям по настройке SDK.

6. Расширенное устранение неполадок

  • Убедитесь, что у вас установлены необходимые разрешения для каталога SDK. Вы можете проверить и установить необходимые разрешения командой:
sudo chown -R $(whoami):$(whoami) /usr/local/android-sdk
  • Убедитесь, что ваш Java JDK установлен и настроен правильно, так как он необходим для работы Android SDK.

Заключение

После выполнения всех указанных шагов, вы должны быть в состоянии успешно запустить flutter doctor -v без ошибок, связанных с отсутствием Android SDK или платформ. Если проблемы продолжаются, дайте знать, предоставив дополнительную информацию о том, что было выполнено, чтобы мы могли дальше помочь вам в решении этой проблемы.

Оцените материал
Добавить комментарий

Капча загружается...