android - Flutter Doctor 无法识别我的 ANDROID_SDK 环境变量

标签 android flutter ubuntu dart android-sdk-tools

我从 ubuntu 的存储库安装了 android-sdk,但它不包含 sdkmanager可执行文件并且当前还不足以与 flutter 兼容,因此我从包含它的 snapd 安装了包装器。根据documentation我必须更改我的 ANDROID_SDK_ROOT环境。变量,以便它与它一起工作。我还读到我需要设置 ANDROID_HOME到目录(我认为它已被弃用,但以防万一)所以我把它放在我的 .profile :

export ANDROID_SDK_ROOT=/snap/androidsdk/current/
export ANDROID_HOME=/snap/androidsdk/current/
然后我跑了source .profile并重新启动了我的机器,但是 flutter 医生一直给我这个错误:
[!] Android toolchain - develop for Android devices (Android SDK version 27.0.1)
    ✗ Flutter requires Android SDK 29 and the Android BuildTools 28.0.3
      To update the Android SDK visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions.
我知道它使用了错误的路径,因为当我运行 flutter doctor --android-licenses 时我收到此错误:
Android sdkmanager tool not found (/usr/lib/android-sdk/tools/bin/sdkmanager).
它指向我用 apt 安装的 SDK 的路径。我试过flutter config --android-sdk $PATH_TO_SDK但这仍然没有改变任何东西。是否有一个包含 sdk 管理器的 ppa,这样我就不必尝试配置 flutter 来使用 snapd androidsdk 或者我缺少/做错了什么?
操作系统:Ubuntu 20.04
androidsdk (snapd) 版本:30(我不想用这个)
android-sdk (apt) 版本:25.0.0(也低于flutter的要求)

最佳答案

您为 ANDROID_HOME 使用了错误的路径
Android Studio 不是必需的:
在使用 snap 安装 Flutter 并确保“/snap/bin”在您的路径中之后:

  • sudo snap install androidsdk
  • 作为普通用户: androidsdk "platform-tools""platforms;android-29""build-tools;30.0.2"

  • 这会将您需要的 android sdk 工具安装到“$HOME/AndroidSDK”中
  • 导出 ANDROID_HOME="$HOME/AndroidSDK"
  • flutter 医生
  • 关于android - Flutter Doctor 无法识别我的 ANDROID_SDK 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64523575/

    相关文章:

    c++ - 如何从源代码安装 boost 获得与从存储库安装 boost 相同的结果?

    node.js - 无法安装 node-sass npm 模块

    android - 运行 Android 应用程序时为 "java.lang.InstantiationException"

    java - 在 xml 解析中查看 android 的 flipper 示例

    flutter - 在 Flutter 中,如何在较大的屏幕尺寸上修复 PopupMenuItem Widget 中的截断文本?

    flutter - 如何在 flutter Dart 中从两个字符串生成一个字符串/哈希

    android - 不一致的 onTextChanged() 行为

    android-intent - 在 Android 中的 Activity 、服务和应用程序之间传递变量

    ios - 如何在 Flutter 中制作多个 iOS Target?

    python - 为 python Web 应用程序运行 apache 服务器时导入错误