【问题标题】:Automatically accept all SDK licences自动接受所有 SDK 许可
【发布时间】:2016-10-31 23:05:55
【问题描述】:

自 gradle android 插件2.2-alpha4:

Gradle 将尝试下载项目缺少的 SDK 包 取决于

这非常酷,并且被称为JakeWharton project

但是,要下载 SDK 库,您需要:接受许可协议或 gradle 告诉您:

您尚未接受以下 SDK 的许可协议 组件:[Android SDK Build-Tools 24,Android SDK Platform 24]。 在构建项目之前,您需要接受许可 协议并完成缺失组件的安装 使用 Android Studio SDK 管理器。或者,学习如何 将许可协议从一个工作站转移到另一个工作站,转到 http://d.android.com/r/studio-ui/export-licenses.html

这是一个问题,因为我希望在执行gradle build 时安装所有 sdk 依赖项。

我正在寻找一种自动接受所有许可的解决方案。也许是一个gradle脚本? 你有什么想法吗?

【问题讨论】:

  • 您也可以在该命令前弹出echo y | 以自动接受许可证。在无头 CI 盒上运行时很有用 :)
  • 我不得不做~/.android/tools/android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository,因为android 工具已本地化到我家
  • sdkmanager --licenses 不再有效。我使用了 --upgrade,忽略了错误,这对许可证问题进行了排序。
  • 我已经将此命令用于 CI 环境构建脚本,稍作调整。我添加了 --sdk_root=$ANDROID_SDK_PATH。问题是许可证被接受并且没有保存到 Android SDK 根文件夹。最终命令:是 | sdkmanager --licenses --sdk_root=$ANDROID_SDK_PATH(不带 sudo)
  • 请务必将$ANDROID_SDK_PATH设置为您安装SDK的实际根路径(即:/opt/android-sdk),或者直接输入路径(即:yes | sdkmanager --licenses --sdk_root=/opt/android-sdk

标签: android gradle sdk android-gradle-plugin android-sdk-tools


【解决方案1】:

我在alpha5 预览中遇到了这个问题。

Jake Wharton 向我指出,您目前可以使用

mkdir -p "$ANDROID_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"

在您的机器上重新创建当前的$ANDROID_HOME/license 文件夹。这将与错误消息 (http://tools.android.com/tech-docs/new-build-system/license) 的链接中概述的过程具有相同的结果。

哈希是许可证文本的 sha1,我想它会定期更新,所以这段代码只能工作这么长时间:)

并且手动安装,不过是 gradle 的新功能目的。

起初我很惊讶,即使我通过android 工具接受了命名组件的许可证,这也不是开箱即用的,但有人向我指出,它是在 AS 中创建的 SDK 管理器/licenses 文件夹。

我猜官方工具出于法律原因不想跳过这一步。

重新阅读它声明的发行说明

SDK 自动下载:Gradle 将尝试下载项目所依赖的缺失 SDK 包。

这并不意味着如果您还没有安装 android 工具并且已经接受了最新的许可证,它就可以工作。

编辑:也就是说,在我将 SDK 链接到 AS 之前,它仍然无法在我的测试 gubuntu 机器上运行。 CI 工作正常 - 不知道有什么区别......

【讨论】:

  • 关于某些组件的 sdkDownload 功能有一个小故障,例如 support-v4。它更新组件,但 gradle 在下次调用之前不会看到更新。一种解决方法是执行 gradle 两次,一次丢弃:gradle dependencies ||是的 -- code.google.com/p/android/issues/detail?id=212309
  • 你可以用mkdir -p代替|| true
  • 它的工作原理感谢您的这个故障,很高兴知道。检查您的 SDK 路径是否按预期定义:echo $ANDROID_SDK
  • 在我的环境中,ANDROID_SDK 未定义,但它适用于 ANDROID_HOME
  • @stack_ved:我刚刚添加了另一个echoecho -e "\nd56f5187479451eabf01fb78af6dfcb131a6481e" >> "${ANDROID_HOME}/licenses/android-sdk-license"。但我认为你的问题隐藏在其他地方。
【解决方案2】:

不幸的是,OP 最初解决它的方式并不总是有效。 如果您从错误消息中发现您当前的构建版本是什么build-tools version。可能是缺少更高版本的构建工具。在这种情况下,您需要手动启动 SDK Manager 并添加构建工具并接受许可。

根据 OP 指令,它如下所示。

$ ./gradlew build

为了遵守此构建的 JVM 设置,将分叉一个新的 JVM。请考虑使用守护进程:https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html。 FAILURE:构建失败并出现异常。 * 什么地方出了错: 配置项目 ':app' 时出现问题。 > 您尚未接受以下 SDK 组件的许可协议: [Android SDK 构建工具 24.0.2]。 ... 构建失败

注意:2017-04-16

android 工具现已弃用,取而代之的是新的 sdkmanager。请参阅 Joe Lawson 的 answer 以及 3 月(2017 年)及以后的后续帖子。

然后调整你的命令如下:

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository
刷新来源: 获取 https://dl.google.com/android/repository/addons_list-2.xml 验证 XML 解析 XML 成功获取加载项列表 刷新源 获取网址:https://dl.google.com/android/repository/repository-11.xml 验证 XML:https://dl.google.com/android/repository/repository-11.xml 解析 XML:https://dl.google.com/android/repository/repository-11.xml ... 错误:忽略未知包过滤器“build-tools-24.0.2” ------------------------------------------- 许可证 ID:android-sdk-license-xxxxxxxx 使用者: - SDK 平台 Android 7.0,API 24,修订版 2 - Android 支持存储库,修订版 39 ------------------------------------------- ... 2015 年 11 月 20 日 您是否接受许可 'android-sdk-license-xxxxxxxx' [y/n]: y 安装档案: 准备安装档案 下载 SDK 平台 Android 7.0,API 24,修订版 2 安装 SDK 平台 Android 7.0,API 24,修订版 2 已安装 SDK 平台 Android 7.0,API 24,修订版 296%) 下载 Android 支持存储库,修订版 39 安装 Android 支持存储库,修订版 39 已安装的 Android 支持存储库,修订版 3999%) 完毕。安装了 2 个软件包。

再次运行此程序,仍然无法让 Gradle 满意。因此,在有人想出更好的方法之前,手动接受是唯一的解决方案。 (请做!)

【讨论】:

  • android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository 通过具有管理员权限的命令提示符运行此修复了错误。我无法安装phonegap plugin manager
【解决方案3】:

我通过使用已接受的许可证文件创建公共 git 存储库解决了这个问题。然后我使用wget 在我需要的任何机器上将这些许可证获取到 [sdk-dir]/licenses 目录中,然后运行 ​​./gradlew 来构建我的项目。

【讨论】:

  • 不幸的是,您的解决方案没有告诉我如何解决问题。你能分享一下你是如何获得“许可证文件”的吗?
  • @FrederickNord 许可证是从您计算机上的 $ANDROID_HOME/sdk/licenses 获得的。
【解决方案4】:

请注意,对于目前提出这个问题的任何人,build-tools-24.0.2(我认为)现在被认为是过时的,所以你会得到:

 Error: Ignoring unknown package filter 'build-tools-24.0.2'

运行建议安装它们的各种命令时。

解决方法是添加--all:

android update sdk --no-ui --all --filter "build-tools-24.0.2"

另外,如果你使用的是 32 位 Linux,everything after build tools 23.0.1 is 64bit only,所以不会运行。 32 位用户卡在 23.0.1 上,获得更高版本工具的唯一方法是切换到 64 位。

【讨论】:

  • 是的,build-tools 刚刚被撞到 25.0.1
  • 你的解决方案是我唯一能在无头 ubuntu 16 机器上为 build-tools-25 和 gradle 4 工作的解决方案
【解决方案5】:

如果您使用的是 Jenkins,您可以使用以下 bash 脚本作为构建过程的第一步:

(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u

这当然会安装所有可用的更新,但如果您可以腾出磁盘空间,它将为您节省一些时间。 sleep 是为了避免安装程序中的 readline 损坏,因为在这种情况下“yes”不能正常工作。

编辑:如果您使用内置 SDK 管理器,您还需要在构建步骤中添加“安装 Android 项目先决条件”插件以获得正确的 $ANDROID_HOME。

【讨论】:

  • 我在 Ubuntu 上运行的 jenkins 构建中的“cordova platform add android”之前添加了您的代码行,但仍然出现以下错误:BUILD FAILED in 7s Error: /var/lib/jenkins/workspace /qa_global_php/platforms/android/gradlew:命令失败,退出代码 1 错误输出:FAILURE:构建失败并出现异常。 * 出了什么问题:配置根项目“android”时出现问题。 > 您尚未接受以下 SDK 组件的许可协议:
  • [Android SDK 构建工具 26.0.2]。在构建项目之前,您需要接受许可协议并使用 Android Studio SDK 管理器完成缺失组件的安装。
  • "休眠是为了避免安装程序中的readline断线"
【解决方案6】:

关于 SDK api number 25 的错误信息:

android update sdk --no-ui --all --filter build-tools-25.0.1,android-25,extra-android-m2repository

【讨论】:

    【解决方案7】:

    android 工具已弃用,您应该改用sdkmanagersdkmanager 在您第一次接受许可文件时也会写入它。许可证会根据您使用的 SDK 而有所不同,即使命令

    echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
    

    适用于某些系统。它不会对所有都有效。一些 SDK 安装希望许可文件在文件中没有换行符的情况下结束,因此请尝试在 echo 命令中添加 -n

    echo -n -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
    

    如果这不起作用,您可以尝试使用 base64 编码。

    所以要发现我的许可证:

    $> rm ${ANDROID_HOME}/
    $> unzip tools_r25.2.3-linux.zip -d ${ANDROID_HOME}
    $> ${ANDROID_HOME}/tools/bin/sdkmanager "system-images;android-23;default;x86_64"
    

    它会提示您接受许可。接受后会将其复制到${ANDROID_HOME}/licenses/android-sdk-license。为确保您始终准确了解所写内容,请使用base64

    $> base64 ${ANDROID_HOME}/licenses/android-sdk-license
    Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=
    

    那么你就可以使用base64 -d精确地重新创建文件了。

    $> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${ANDROID_HOME}/licenses/android-sdk-license
    

    您可以通过对其运行 sha1sum 来验证写入的文件是否符合预期。

    $> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license
    da6b80c9c47b41c0bf7032938e7137a58a3dc249
    

    【讨论】:

      【解决方案8】:

      对于新的sdkmanager 实用程序:

      yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"

      yesses 之间有一点延迟,因此命令可能会在显示许可证的情况下挂起一段时间,但不需要人工干预。

      【讨论】:

      • 在我安装的 debian9 中,我只有一个 sdkmanager.jar:android-sdk-linux/tools/lib/sdkmanager.jar 和 # java -jar /android-sdk-linux/tools/lib/sdkmanager .jar 错误:未设置工具目录属性,请确保您正在执行 android
      • 这是基于您从 Google 下载 SDK 工具作为存档并将其解压缩到 $ANDROID_HOME 的假设
      • 这似乎是up-to-date 最多的答案。看来--licenses 已经不存在了。注意:查看可以提供的可能版本列表:$ANDROID_HOME/tools/bin/sdkmanager --list
      • 感谢您的提示。我最终在我的 CI 中使用了yes | android-sdk-linux/tools/bin/sdkmanager --licenses || true
      • es | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;28.0.3" -> 更改对我有用的版本。谢谢!
      【解决方案9】:

      我可以找到两种方法来解决这个问题。

      1. 通过以下方式接受许可协议,使用命令窗口更新 sdk 工具,只需根据需要更改版本即可。

        android update sdk --no-ui --filter build-tools-25.0.2,android-25,extra-android-m2repository

      2. 第二种方法是将许可证文件夹复制到 Android 根目录。转到您的开发机器打开 Android Studio。从 Project Structure 菜单中找到您的 sdk 位置。 (C:\Users\UserName\AppData\Local\Android\sdk)。在该目录下必须有一个许可证文件夹。复制该文件夹的内容。将该文件夹粘贴到您的 Jenkins 服务器机器(或您遇到此问题的位置)中的 android sdk 根文件夹下。 (C:\Users\UserName.jenkins\tools\android-sdk)

      【讨论】:

      • “自动”
      【解决方案10】:

      我们在 Jenkins 上构建项目时发现了同样的问题。使用buildToolsVersion '25.0.2',我们必须在构建之前接受许可证。在我们的例子中,我们需要运行:

      yes | sdkmanager --update 接受 sdkmanager 本身的许可证,然后

      yes | sdkmanager --licenses 接受以前未接受的新许可证

      记住:使用jenkins 使用的同一用户运行这些命令。在我们的 Debian 中,Jenkins 用户只是 jenkins。换句话说:以root 执行此操作将创建已接受的许可证为root,因此 Jenkins 将无法读取它们。

      顺便说一句,我们在/var/lib/jenkins/tools/android-sdk/tools/bin 找到了sdkmanager。如果您的不在,请使用find / -name "sdkmanager" 查找它

      【讨论】:

      • 这个也解决了我的问题(构建工具 26.0.x),使用 Docker 中的 Jenkins。谢谢!
      • 不幸的是,这不包括问题的“自动”部分。
      • @m0skit0 感谢您的评论!我已更新问题以与最新版本功能相匹配,以自动接受所有许可证而无需人工干预。
      • @Maruf 安装 Android SDK 并将其添加到路径:·)
      【解决方案11】:

      复制整个 licenses/ 目录并将其粘贴到您希望构建项目的机器上的 Android SDK 主目录中。

      https://developer.android.com/studio/intro/update.html#download-with-gradle

      这为我解决了问题

      【讨论】:

        【解决方案12】:

        对于最新的 Android Studio (2.3),更新/接受所有许可证的最佳方式是运行:

        cd $ANDROID_HOME
        tools/bin/sdkmanager --licenses
        

        您可能仍需要根据您的设置将许可文件复制到其他位置。

        【讨论】:

        • 这看起来是最好的方法,它也适用于所有平台,只需运行 tools/bin/sdkmanager --licenses
        • 如果你有旧的 sdk 管理器 --licenses 将无法工作。需要将工具文件夹复制到另一个位置,然后使用 --sdk_root= 并将其指向您的 sdk 文件夹,然后您就可以将工具更新到新版本。
        • 我们能否以某种方式将yes 输入到该命令中以用于自动构建系统?您不会总是对这些机器具有交互式控制台访问权限,因此物理上按键盘上的y 将不起作用。
        • 谁能指导我如何实施这个解决方案?必须在 build.sh 中添加这一行吗?
        • 它对我有用,但我必须在执行此命令之前执行cd $ANDROID_HOME
        【解决方案13】:

        如果您使用tools/bin/sdkmanager --licenses,您仍然需要进行人工交互。我在使用 gitlab CI 时遇到问题。这是我的解决方案:

        wget --quiet --output-document=tools.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
        unzip -qq tools.zip
        echo y | tools/bin/sdkmanager "platforms;android-25"
        echo y | tools/bin/sdkmanager "platform-tools"
        echo y | tools/bin/sdkmanager "build-tools;25.0.2"
        echo y | tools/bin/sdkmanager "extras;android;m2repository"
        echo y | tools/bin/sdkmanager "extras;google;m2repository"
        

        echo y如果有任何问题会说是,但是你需要为每个安装包做一行

        【讨论】:

        • 几个月后仍然很重要。谢谢你。你拯救了我的一天:)
        • 这对我很有帮助,也使用了 GitLab
        【解决方案14】:

        最后,这两个简单的步骤在 Windows 10 上对我有用。

        1) 确保更新您的 android 构建工具和 api。在您的 Android Sdk 上,只需单击安装包即可安装可用更新。

        2) 启动您的 Android Studio,系统会提示您为已更新的 api 和工具安装所需的构建工具,这将安装构建工具属性,包括许可证和您的完成。

        【讨论】:

        • “自动”
        【解决方案15】:

        在 Windows PowerShell 中,您可以这样做

        for($i=0;$i -lt 30;$i++) { $response += "y`n"}; $response | sdkmanager --licenses
        

        这更加灵活,并且需要零人工干预。 30 个数字是任意的,应该足以涵盖许可接受的数量,但如果需要可以增加

        【讨论】:

          【解决方案16】:

          我跑

          #react-native run-android 
          

          从终端并遇到了这个问题。 对于手动,请转到 Android Studio -> Android SDK -> SDK 平台 单击显示包详细信息并检查:

          + Google APIs
          + Android SDK Platform 23
          + Intel x86 Atom_64 System Image
          + Google APIs Intel x86 Atom_64 System Image
          

          安装包时,勾选accept license =>可以解决问题。

          【讨论】:

            【解决方案17】:

            我导航到:

            /usr/lib/android-sdk/licenses
            

            然后我在终端输入:

            echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_SDK/licenses/android-sdk-license"
            

            具有root权限。 它现在对我有用。

            【讨论】:

              【解决方案18】:

              这解决了我的错误

              echo yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"
              

              【讨论】:

              • 为了节省几个字符,yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2" 做同样的事情。
              【解决方案19】:

              2021 年更新 This 应该是公认的答案,因为它简单且最新


              AndroidSDK 终于可以接受许可了。

              转到Android\sdk\tools\bin

              yes | sdkmanager --licenses
              

              编辑:

              正如@MoOx 在 cmets 中指出的那样,在 macOS 上,您可以这样做

              yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

              正如@pho、@mikebridge 和@Noitidart 在 Windows 上的 cmets 中指出的那样,您可以这样做

              cmd.exe /C"%ANDROID_HOME%\tools\bin\sdkmanager.bat --licenses"

              之前一定要安装java

              【讨论】:

              • 在寡妇上,我必须先去运行然后C:\Users\x1\AppData\Local\Android\sdk\tools\android,然后它会弹出一个 GUI,然后安装缺少的然后在弹出的新对话框中单击“接受许可”。
              • 这不适用于 linux。在 tools/bin 目录或其他地方没有 sdkmanager 文件。你能帮忙吗?
              • 在macOS上,你可以yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
              • 如何从 gradle wrapper 自动接受许可证?
              • 支持@Noitidart 获取路径,但它不起作用,我必须运行 C:\Users\x1\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses从命令提示符并点击“y”+进入提示符
              【解决方案20】:

              如果你运行yes | sdkmanager --licenses,那么我们打印$ANDROID_HOME/licenses/android-sdk-license的内容,

              我们会得到这个

              # cat $ANDROID_HOME/licenses/android-sdk-license
              
              8933bad161af4178b1185d1a37fbf41ea5269c55
              
              d56f5187479451eabf01fb78af6dfcb131a6481e
              

              对于 GitLab CI,要接受 Android SDK Build-Tools 26.0.2 许可证,您需要运行此

              before_script:
                - mkdir -p $ANDROID_HOME/licenses
                - echo "8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_HOME/licenses/android-sdk-license
                - echo "d56f5187479451eabf01fb78af6dfcb131a6481e" >> $ANDROID_HOME/licenses/android-sdk-license
              

              【讨论】:

              • 你的第二个回声将指向相同的$ANDROID_HOME/licenses/android-sdk-license,这是有意的吗? IE。追加
              • @RyanR,是的,第二个回显正在附加,Android SDK Build-Tools 26.02 添加了一个新的许可证 sha1 字符串
              • 我正在使用 bitbucket 管道,但概念似乎与 GitLab CI 相同。您的回答帮助我更好地理解了整个过程。谢谢!
              • @Ridcully 我也在使用 Bitbucket Pipelines,当我们升级到 Build-Tools 26.0.2 并且我们的构建中断时发现自己在这里。我的最终解决方案是简单地做yes | sdkmanager --licenses。不需要echos,这是未来的证明。
              • @Ryan 你的意思是我可以添加'是| sdkmanager --licenses' 到 pipeline.yml?那太好了!
              【解决方案21】:

              cd $ANDROID_HOME/tools/bin yes | ./sdkmanager --update

              yes | $ANDROID_HOME/tools/bin/sdkmanager --update

              【讨论】:

              • “自动”
              【解决方案22】:

              我在使用 Cordova 时遇到了同样的错误。

              问题是由于我通过 Android Studio 和通过aptapt install android-sdk adb 安装了 Android Sdk。 Cordova 调用的是通过apt 安装的文件,而不是我的主目录中的文件。

              一旦我在 bash 中更改了 SDK 的路径,它就起作用了:

              # Change path
              export ANDROID_HOME="$HOME/Android/Sdk/"
              echo "Android home = $ANDROID_HOME"
              # Accept licenses
              eval "${ANDROID_HOME}/tools/bin/sdkmanager --licenses"
              # Run Cordova
              cordova build android
              

              然后我删除了不再使用的系统文件:apt remove android-sdk adb

              【讨论】:

                【解决方案23】:

                对于反应原生应用:

                如果您在 React Native 应用程序中遇到此问题,除了上述步骤之外,请确保您的应用程序的 android 目录(AppName/android)中有指向您的“sdk”的 local.properties 文件目录:

                sdk.dir=/PATH_TO_SDK/
                

                【讨论】:

                • 设置你的 android_home 变量也适用于 react native 应用程序。就我个人而言,我在我的 IDE 运行配置中设置了它。
                【解决方案24】:

                您可以通过执行以下命令来接受所有许可:

                 sdkmanager --licenses
                

                这将提示您完成尚未接受的每个许可证,您只需输入 y 即可接受每个许可证。

                【讨论】:

                • “自动”
                【解决方案25】:

                在 Mac OSX 上,导航到 sdk/tools/bin

                然后运行./sdkmanager --licenses,并接受所有许可。

                【讨论】:

                  【解决方案26】:

                  我终于在 Windows 上找到了一个解决方案,可以进行真正的静默自动安装:

                  在 Windows 上,以下语法不起作用:

                  echo y | sdkmanager --licenses
                  

                  似乎“y”没有正确发送到批处理中调用的 java 程序。

                  解决方法是创建一个文件file-y.txt,其中有几个“y”,一行一行,并使用

                  call sdkmanager --licenses < file-y.txt
                  

                  这将在许可目录中创建所需的文件。问题可能与Java中使用BufferedReader有关

                  【讨论】:

                    【解决方案27】:

                    对于 2018 年有此问题的任何人都可以。以上答案对我根本不起作用。 DID 的工作是打开 Android SDK - 单击工具栏上的 DOWNLOAD 按钮并选择适当的包。他们完成下载后,它将让您接受许可协议。

                    【讨论】:

                      【解决方案28】:

                      你也可以直接执行:

                      $ANDROID_HOME/tools/bin/sdkmanager --licenses
                      

                      在 Windows 中,执行:

                      %ANDROID_HOME%/tools/bin/sdkmanager --licenses
                      

                      【讨论】:

                        【解决方案29】:

                        对于那些对命令行 SDK 有问题的人,它找不到您接受的许可证的原因是因为它们已被写入到与 $ANDROID_HOME/licenses 不同的位置,而这是它们需要的位置。

                        我发现最简单的解决方案是接受这样的许可证:

                        $ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME

                        注意:这假设您已将 ANDROID_HOME 设置为指向您的 sdk 的安装位置。

                        【讨论】:

                          【解决方案30】:

                          我在 windows 10 机器上尝试了上述所有命令 但解决方案是使用 SDKMANAGER 来检查和接受许可证购买安装缺少的版本

                          【讨论】:

                          • 没有一个 CMD 命令对我有用,只有这个解决方案。谢谢
                          猜你喜欢
                          • 2017-01-29
                          • 2020-12-12
                          • 2017-10-12
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2018-08-24
                          • 1970-01-01
                          相关资源
                          最近更新 更多