如何在颤振中修复“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许可证状态未知”的主要内容,如果未能解决你的问题,请参考以下文章

Android许可证状态未知和一个奇怪的问题

Flutter Doctor,Android 许可证状态未知

当我尝试运行颤振医生 --android-licenses 时出错

Android/Sdk 缺少 Tools 文件夹,意味着没有 sdkmanager,意味着“Android 许可证状态未知”错误

如何修复颤振医生不识别安卓手机

双击按钮时如何修复颤振中的多个导航