flutter doctor 中的“Android 许可证状态未知”

“Android license status unknown” in flutter doctor

当我在命令行 运行 flutter doctor

上时,Android Sdk 出现错误
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v1.4.9-hotfix.1, on Mac OS X 10.14.4 18E226, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit
      https://flutter.io/setup/#android-setup for detailed instructions.
[✓] iOS toolchain - develop for iOS devices (Xcode 10.2)
[✓] Android Studio (version 3.3)
[✓] VS Code (version 1.33.1)
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

在遵循了 Whosebug 社区的几个可能的修复之后,我仍然无法让它工作。 我需要帮助。

这是对我有用的

修复 1:

  • 启动 Android studio 并打开 SDK 管理器(Android studio 的右上角)
  • 导航到 SDK 选项卡并查找 Android SDK 平台工具
  • 如果勾选,取消勾选并点击'Apply'(我们正在尝试卸载之前的版本)
  • 现在 "SDK Tools" 已卸载。让我们通过选中该框并单击 'Apply'
  • 来重新安装它
  • 点击确定并重启 Android 工作室
  • 导航到 %USERPROFILE%\AppData\Local\Android\Sdk 的 SDK 安装位置 windows,您应该会看到一个新文件夹 tools 注意:如果您没有看到 tools 文件夹,请不要惊慌,我已经为您准备好了。
  • 打开 tools 文件夹并导航到 bin
  • 复制文件夹路径(即C:\Users\USERNAME%\AppData\Local\Android\Sdk\tools\bin
  • 将该路径添加到环境变量
  • 现在您应该可以在命令行中访问 sdkmanager。通过在 CMD 中键入 sdkmanager 并按回车键来尝试一下。
  • 如果您得到 'sdkmanager' is not recognized as an internal or external command, operable program or batch file.,您可能在将路径添加到系统环境变量时犯了错误。解决这个问题。
  • 转到 Flutter sdk 文件夹(即 c:/src/flutter)并启动 flutter_console.bat 文件
  • 现在输入命令flutter doctor --android-licenses,它应该可以工作了。通过输入 y 并按 ENTER
  • 接受所有
  • 别忘了 运行 flutter doctor

修复 2:

PS:只有修复 1 对您不起作用!

  • 打开浏览器并转到 Command line tools only(页面底部)
  • 为您的平台下载合适的包
  • 解压缩 & 是的!您应该会看到 tools 文件夹
  • 解压后,将tools文件夹复制到C:\Users\USERNAME%\AppData\Local\Android\Sdk

    现在与上面的修复 1 相同,

  • 打开 tools 文件夹并导航至 bin

  • 复制文件夹路径(即C:\Users\USERNAME%\AppData\Local\Android\Sdk\tools\bin
  • 将该路径添加到环境变量
  • 现在您应该可以在命令行中访问 sdkmanager。通过在 CMD 中键入 sdkmanager 并按回车键来尝试一下。
  • 如果您得到 'sdkmanager' is not recognized as an internal or external command, operable program or batch file.,您可能在将路径添加到系统环境变量时犯了错误。解决这个问题。
  • 你还没有完成
  • 您下载的 SDK 平台工具可能已过时(正如您从命令行 运行 sdkmanager 命令时看到的那样)
  • 现在让我们交给 Android Studio 来完成剩下的工作。重新启动 Android Studio,以便它可以识别您添加的 tools 文件夹。
  • 重新启动后,Android Studio 应该会自动检测过时的平台工具并提示您更新(您必须连接到互联网!)。
  • 如果没有出现更新提示
  • 在 Android 工作室中打开 SDK 管理器,
  • 转到更新
  • 点击Check Now
  • 你应该得到更新平台工具的提示

修复 3:

  • 完成修复 2 中的所有操作
  • 打开环境变量,创建一个新变量 JAVA_HOME 并将值设置为 JRE/bin(从 Program Files 中的 Android studio 安装位置获取)
  • 打开命令行类型 set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee' for windows & export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee' for Linux

就是这样,您现在可以在命令行上 运行 flutter doctor --android-licenses;通过键入 y 并按 ENTER 接受所有许可。别忘了 运行 flutter doctor

就是这样。我希望它也适合你