Flutter:不接受某些 Android 许可证。不能接受许可

我无法接受许可证。当我运行 flutter doctor -v 时,会显示:

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /home/gledyson/bin/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /home/gledyson/bin/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

然后我运行 flutter doctor --android-licenses 并无错误地接受所有许可证。

最后,它说:

All SDK package licenses accepted

但是当我再次运行 flutter doctor -v 时,警告仍然存在:

[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /home/gledyson/bin/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /home/gledyson/bin/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

我已经安装了 Android SDK 和命令行工具(最新),如图所示: android sdk 1 android sdk 2

我的操作系统是 Linux Mint 20.2。

stack overflow Flutter: Some Android licenses not accepted. Cannot accept licenses
原文答案

答案:

作者头像

我找到的解决方案是使用 sudo 以提升的权限直接运行 sdkmanager:

sudo ./sdkmanager --licenses

sdk 文件位于 sdk/cmdline-tools/latest/bin 下。

这解决了我的问题。

作者头像

打开 cmd 并运行这个命令 flutter doctor --android-licenses 并接受所有。这对我有用。

作者头像

我也是 Linux Mint 用户,遇到了同样的问题,但我找到了解决方案

如果你在根目录下安装了android studio或者sdkmanager,那么当你想同意许可时,许可协议不会改变,因为你必须先有root权限。

尝试以 root 身份运行 sdkmanager,然后运行 ​​ sdkmanager --licenses 。如果存在 sdkmanager: command not found 问题,首先将 $PATH 指向 sdkmanager 所在的目录,然后以 root 身份再次运行它。

注意:不要忘记安装 cmdline-tools,通常 sdkmanager 位于 cmdline-tools 文件夹中。