Flutter无法找到Android SDK。

113

我刚尝试安装Flutter,由于我已经安装了Android Studio和Android SDK。因此,我只需按照Flutter的安装步骤进行安装。我的问题在于:当我运行

flutter doctor

它告诉我

  [√] Flutter (Channel beta, v0.1.5, on Microsoft Windows [Version 10.0.16299.248], locale en-US)
    • Flutter version 0.1.5 at C:\Users\Name\git\flutter
    • Framework revision 3ea4d06340 (2 weeks ago), 2018-02-22 11:12:39 -0800
    • Engine revision ead227f118
    • Dart version 2.0.0-dev.28.0.flutter-0b4f01f759

[X] Android toolchain - develop for Android devices
    X ANDROID_HOME = C:\Users\Name\AppData\Local\Android\sdk\Android
      but Android SDK not found at this location.

[√] Android Studio (version 3.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)

这告诉我Flutter找不到我的Android SDK(即使它是Android Studio使用的路径 - 而且Android Studio正常工作)

我已经尝试重新安装SDK,但没有起作用。

非常感谢任何帮助。

29个回答

275
Flutter提供了一个命令来更新Android SDK路径:
使用:
flutter config --android-sdk "<path-to-your-android-sdk-path>"

9
可以。小提示:我在Windows 10的用户文件夹中找到了SDK,命令如下: flutter config --android-sdk "C:\Users[你的本地用户文件夹]\AppData\Local\Android\Sdk" - Mustafamg
25
是的,您需要用引号将其输入。例如:flutter config --android-sdk "C:\Program Files (x86)\Android\android-sdk"。 - Kasun Wanniarachchi
2
非常感谢。经过一个小时的排查问题,终于现在可以工作了! - matuselah
1
兄弟,非常感谢,帮了大忙 :) - SARAN SURYA
2
为什么我们需要修复本来没问题的东西...他们不能在设置期间添加那个语句吗?所有这些小事情真的很让我烦恼。 - html_programmer
显示剩余4条评论

42

请先检查最新的sdk 第一步: 安装最新Sdk平台

第二步: 安装所有这些许可证

现在运行

运行flutter doctor --android-licenses 对每个协议都按Y键

运行flutter doctor flutter医生 它会正常工作。


8
您的回答没有说明用户应该做什么。您的回答建议他们根据您的图像更新所有SDK和工具。 - Tony Lancer
1
我不确定是我执行了哪些操作,最终使得flutter doctor提示我接受许可证,但是现在一切都通过了。我相信可能是安装SDK平台API级别28、Android SDK工具(初始安装仅下载了Platform-Tools)所致。一旦这些被安装并再次运行flutter doctor --android-licenses,一切都解决了。我认为这个(为了开发Flutter)过程需要改进。值得付出努力吗(反问)? - user3232196
谢谢。不知怎么的,我跳过了安装平台工具..之后就可以工作了。 - davyCode
当 Android SDK 位于 Flutter Doctor 错误指定的路径之外时,接受的答案特别有用。默认情况下,上面的评论应该解决大多数与 Flutter 相关的 Android SDK 问题。尽可能保持 SDK 完全安装/更新。此外,接受许可证应该是自动的。 - Rod Maniego

21

选择安装文件夹(我称其为BASE_PATH),然后使用以下命令来安装带有Flutter的SDK:

安装SDK

cd $BASE_DIR
mkdir android-sdk
cd android-sdk
wget https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip
unzip commandlinetools-linux-6200805_latest.zip
./tools/bin/sdkmanager --sdk_root=$(pwd) "build-tools;28.0.3" "emulator" "platform-tools" "platforms;android-28" "tools"
我独立创建了一个SDK文件夹,因为这样不会增加父文件夹。
安装Flutter。
cd $BASE_DIR
wget https://storage.googleapis.com/flutter_infra/releases/stable/linux/flutter_linux_v1.12.13+hotfix.8-stable.tar.xz
tar xvf flutter_linux_v1.12.13+hotfix.8-stable.tar.xz

导出变量(您可以将它们添加到您的.bashrc中)

export ANDROID_SDK=$BASE_DIR/android-sdk
export ANDROID_PATH=$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools
export FLUTTER=$BASE_DIR/bin
export PATH=$PATH:$ANDROID_PATH:$FLUTTER

检查!

flutter doctor

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v1.12.13, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[!] Android Studio (not installed)
[✓] VS Code (version 1.31.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

3
为了使其正常工作,我必须运行 flutter config --android-sdk="$ANDROID_SDK" 命令。(参考来源:https://github.com/flutter/flutter/issues/90042#issuecomment-919075876) - Drdilyor
1
只需在每个sdk manager命令中传递--sdk_root标志,安装构建工具和命令行工具后,只需设置ANDROID_HOME环境变量,Flutter就可以读取它。谢谢,这是互联网上最好的答案。 - ronit
在我的情况下,安装 SDK 时我还需要添加 "cmdline-tools;latest"。 - Reyan Chougle

9
我在执行Flutter Doctor命令时遇到了以下问题。 X Android SDK文件未找到: ..\Android\sdk\platforms\android-28\android.jar。 要解决此问题,只需转到工具= > Android Sdk =>更新Sdk平台,为该问题安装SDK 28即可。 查看Flutter文档以了解此问题。

问题出现在SDK目录中找到的“最新”SDK平台只部分安装或不完整,实际上android.jar不存在。确保您完全安装任何SDK平台以使用每个新API。 - Rod Maniego

7
如果您找不到合适的SDK路径,则需要按照以下步骤操作:
  1. 打开 Android Studio
  2. 转到 "工具" (Tools)
  3. 进入 "SDK管理器"(SDK Manager)
  4. 您将找到 "Android SDK 位置"

复制该路径并编辑 "环境变量"
之后,重新启动并运行命令。
然后,运行 "flutter doctor"
希望它能正常工作!


7

在我的SDK文件夹中有一个空文件夹(/build-tools/29.0.0)

我将其删除后,问题得到解决。


2
这在我的 Mac 电脑上有效。只需删除空文件夹即可。谢谢 Xero。 - Amresh Deshpande
是的,这个方法可行,并且它会“回滚”到平台目录中下一个“最新”的API级别。可以通过在SDK管理器中再次安装部分安装的SDK平台包来完全修复它。 - Rod Maniego

7

我花了很多时间来解决这个问题。

最终成功的方法是进入Android Studio的项目设置,找到SDK工具,取消隐藏已过时的包,然后安装SDK工具已经过时的包。

然后运行“flutter doctor --android-licenses”,然后“flutter doctor”将在我的Android工具链上显示一个绿色的勾号。

希望这可以帮助某些人。


另一个毫无意义的事情……为什么它处于活动状态,如果它不起作用。 - html_programmer

5

对于Mac用户,

昨天还好好的,今天突然出了问题。不过我已经解决了。

我的问题出在ANDROID_HOME上。

// This is wrong. No idea how it was working earlier.
ANDROID_HOME = Library/Android/sdk 

如果你做了同样的事情,请将其更改为:
ANDROID_HOME = /Users/rana.singh/Library/Android/sdk 

.bash_profile has

export ANDROID_HOME=/Users/rana.singh/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

4

Flutter说Sdk构建工具版本(例如:android toolchain-为Android设备开发(android sdk 28.0.3))版本=28.0.3。请前往home/username/Android/Sdk/build-tools删除此版本(28.0.3)并修复错误。


4

打开工具> Android SDKenter image description here 点击SDK工具选项卡 => 选中显示包详细信息并勾选所有28个SDK版本 安装即可解决问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接