如何在颤振中修复“Android许可证状态未知”
Posted
技术标签:
【中文标题】如何在颤振中修复“Android许可证状态未知”【英文标题】:How to fix "Android license status unknown" in flutter 【发布时间】:2019-06-03 07:28:13 【问题描述】:我的颤振医生 -v 结果:
[√] Flutter (Channel stable, v1.0.0, on Microsoft Windows [Version 10.0.17134.472], locale fa-IR)
• Flutter version 1.0.0 at C:\android\flutter
• Framework revision 5391447fae (6 weeks ago), 2018-11-29 19:41:26 -0800
• Engine revision 7375a0f414
• Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)
[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
• Android SDK at c:\Android\android-sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 27.0.3
• ANDROID_HOME = C:\Android\android-sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
X Android license status unknown.
[√] Android Studio (version 3.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 29.0.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
[√] Connected device (1 available)
• HUAWEI CUN U29 • CCMBBCB6C0153603 • android-arm • Android 5.1 (API 22)
运行时:
flutter doctor --android-licenses
给我这个结果:
A newer version of the Android SDK is required. To update, run:
c:\Android\android-sdk\tools\bin\sdkmanager --update
当更新 sdkmanager 时向我显示此错误:
Exception in thread "main" java.lang.NoSuchFieldError: FN_AAPT2
at com.android.sdklib.BuildToolInfo.<init>(BuildToolInfo.java:362)
我该如何解决这个挑战?
【问题讨论】:
这里正在讨论这个问题 - github.com/flutter/flutter/issues/16025 我需要帮助如何更新 sdk 管理器 【参考方案1】:我通过安装命令行工具解决了这个问题。
然后重新运行
flutter doctor --android-licenses
【讨论】:
【参考方案2】:我已遵循这些步骤。它对我有用。
进入环境变量并添加ANDROID_HOME
,变量值为:
C:\Users\%username%\AppData\Local\Android\Sdk
然后我的JAVA_HOME
带有这个变量值:
C:\Program Files\Android\Android Studio\jre
然后我的路径带有这个变量值:
C:\Users\%username%\flutter\bin
然后我运行以下命令
flutter doctor
得到 Doctor summary 的输出(要查看所有详细信息,请运行 flutter doctor -v
):
[√] Flutter (Channel beta, v0.2.3, on Microsoft Windows [Version 10.0.16299.309],
locale en-US)
[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --
android-licenses
[√] Android Studio (version 3.1)
[√] Connected devices (1 available)
! Doctor found issues in 1 category.
然后我跑了
flutter doctor --android-licenses
并接受所有带有 (y) 的条款和条件
【讨论】:
【参考方案3】:使用 SDK 管理器在 android studio 上安装 Android SDK Command-line Tools
运行flutter doctor --android-licenses
【讨论】:
【参考方案4】:现在这个许可证问题与 java 开发工具包 (JDK) 版本有关。 由于某些原因,如果您没有使用 JDK 8 或更低版本,您将不幸遇到许可证问题。所以基本上卸载当前版本并安装 JDK 8 或更低版本。检查下面的链接并仔细阅读对话。 https://github.com/flutter/flutter/issues/16025
【讨论】:
一种解决方案是安装 JDK 8 或更低版本,然后在您的用户和系统环境变量中正确设置 JAVA_HOME。 在 Mac 上,我安装了 JDK 8 和 14。我忘记切换环境以使用 8 并收到许可消息。切换回 8,它就消失了。【参考方案5】:我按照 Nitesh 步骤解决了 pb(一开始在 Win10 上的 jdk11)(谢谢),但由于 win10 的奇怪行为(我知道...)而发生了一些变化。
要具体化,请使用 win10 向导创建两个环境变量:
我罢工了:TEST1 C:\Users\%username%\XXX
TEST2 %USERPROFILE%\YYY
在向导中显示正确:TEST1 C:\Users\pirla\XXX
TEST2 C:\Users\pirla\YYY
但是在 dos 命令窗口中,尽管用户名正确,但首先出现的是 SYSTEM:C:\Users\pirla>echo %username%
pirla
C:\Users\pirla>set TEST
TEST1=C:\Users\SYSTEM\XXX
TEST2=C:\Users\pirla\YYYY
所以替换C:\Users\%username%\
作者%USERPROFILE%\
一切都很好。
(顺便说一句,如果你也有 JRE_HOME ,也改一下)
HTH
【讨论】:
【参考方案6】:Android Studio 右上角的 AVD 管理器图标和放大镜之间有一个 SDK 管理器图标。点击它。
您将获得一个模式,显示您在左侧菜单中的系统设置 - > Android SDK 中。在中间区域有一个 SDK 工具选项卡,因此单击它。
选中“Android SDK 命令行工具(最新)”框,然后单击应用。它将安装它(大约105M)。现在运行flutter doctor --android-licenses
并对所有内容说“是”。错误应该消失了。
【讨论】:
【参考方案7】:使用 flutter_console 代替 CMD
flutter doctor --android-licenses
【讨论】:
这个控制台 fir mac 在哪里?我找不到它。【参考方案8】:这对我有用:
-
打开 Android Studio 的 SDK 管理器
转到 Android SDK 选项卡
在 SDK Tools 下,取消选中 Hide Obsolete Packages
安装 Android SDK 工具(已过时)
【讨论】:
【参考方案9】:解决方案:在为移动开发设置 Windows 10 Flutter 1.17.1 环境时,上述方法均无效。最快最简单的解决方法是从https://developer.android.com/studio/archive下载android-studio-ide-193.6514223-windows (Android 4.0)。
下载安卓 4.0
安装命令
SDK 设置中的线路工具
重启打开命令提示符
颤振医生-v
【讨论】:
【参考方案10】:您必须安装 Android SDK 命令行工具(最新)。 转到android studio中的SDK Manager,在标签SDK Tools中,签入Android SDK Command-line Tool(Latest),然后点击“应用”。
【讨论】:
【参考方案11】:在 Windows 上: 打开cmd运行:
android update sdk
之后再次运行flutter doctor
【讨论】:
【参考方案12】:在终端:
flutter update
flutter doctor --android-licenses
接受y
的所有条款
【讨论】:
【参考方案13】:卸载 Android Studio 或 Android SDK。重新安装它。
【讨论】:
您只需要从 Adnroid SDK 安装 Android SDK 命令行工具。无需卸载整个工作室和SDK以上是关于如何在颤振中修复“Android许可证状态未知”的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Doctor,Android 许可证状态未知
当我尝试运行颤振医生 --android-licenses 时出错
Android/Sdk 缺少 Tools 文件夹,意味着没有 sdkmanager,意味着“Android 许可证状态未知”错误