不能接受许可协议 Android SDK Platform 24

当我试图在 Cordova 项目上安装一个 android 平台时,出现了以下错误。我一直遵循这个指南: https://cordova.apache.org/docs/en/latest/guide/cli/

执行以下命令时发生错误: $cordova Platform add android —— save

配置根项目“ android”时出现问题。 您还没有接受以下 SDK 组件的许可协议: [ Android SDK Platform 24]。

我到处寻找到 接受 Android SDK Platform 24的许可协议的方法,但没有真正的运气。

提前谢谢你。

188258 次浏览

我不确定 Cordova 是如何工作的,但是一旦许可被接受,它就会创建一个文件。您可以手动创建该文件。这个问题中对此进行了描述,但下面是创建所需许可文件的命令。

Linux:

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

视窗:

mkdir "%ANDROID_HOME%\licenses"
echo |set /p="8933bad161af4178b1185d1a37fbf41ea5269c55" > "%ANDROID_HOME%\licenses\android-sdk-license"

I installed android sdk build-tools 24(it's current version 24.0.3) through SDK manager. 打开 SDK 管理器的路径显示在附加的 img 文件中。 This solved my problem SDK 管理器

我也遇到了同样的问题,然后我安装了“ Android 7.0(API 24) > SDK Platform”,它就工作了。

enter image description here

我通过安装 Android Studio 得到了 Android SDK,也得到了这个错误。用户指南有一个简单的解决方案。

  1. 在安装了 Android Studio 的机器上,单击 Tools > Android > SDK Manager

  2. 导航到该目录并找到其中的 licenses/目录。

    (如果您没有看到 licenses/目录,请返回 Android Studio 和 更新您的 SDK 工具,确保接受许可协议。当您返回到 AndroidSDK 主目录时,现在应该可以看到该目录。)

  3. 复制整个 licenses/目录并将其粘贴到希望生成项目的计算机上的 Android SDK home directory中。

我有问题。您不需要复制或创建任何文件夹,只需要小心 SDK 路径。它必须与环境变量(ANDROID _ HOME)相同,这对我来说是不一样的。我不知道为什么。

sdk location

我在 Mac OS X 10.12.1和 Cordova 6.4.0以及 Android Studio 2.2.3上遇到过这个问题。

当我安装 Android Studio 时,它安装的是25号平台,而不是24号。安装24号平台:

  • 打开 Android Studio。
  • 打开 Android Studio Menu > Preferences
  • Appearance & Behavior > System Settings > Android SDK
  • 勾选 Android 7.0 (Nougat) | 24
  • 单击 ok 并按照说明进行操作。

如果系统没有从正确的路径拾取 ANDROID _ HOME 环境变量,则可能发生此错误。请确保您已经安装了 ANDROID SDK,并且已经将 ANDROID _ HOME 变量设置为正确的路径,如下图所示:

ANDROID _ Home _ PATH

如果没有定义 ANDROID _ HOME 变量,系统将尝试从默认路径中选择路径(这可能不是定义 ANDROID SDK 的路径,从而导致这个问题)。

对我来说,我正在使用“ Ionic build android”命令构建 Ionic,我也遇到了同样的问题! 解决办法很简单

  • 安装所需的 sdk
  • 在 CMD 中运行相同的命令必须是 作为管理者

我刚刚遇到了这个问题,是什么解决了这个问题,我在 windows 上,你使用命令行,你最近安装的 android sdk,你必须重新启动命令提示符或电源外壳后,你安装的 android sdk。

更改目标构建可能与引用的 给你一样有效

如果希望指定 SDK 版本,可以通过在 ionic/cordova 项目的根目录中将以下代码行添加到 config.xml 来实现

<preference name="android-targetSdkVersion" value="23"/>

您需要手动重新安装 sdk 这对我来说很有帮助: < a href = “ https://forum.ionicframework.com/t/you-have-not-epty- the-許-agreement-of-the-following-sdk-Component/69570/6”rel = “ nofollow norefrer”> https://forum.ionicframework.com/t/you-have-not-accepted-the-license-agreements-of-the-following-sdk-component/69570/6

“ android 更新 sdk —— no-ui ——过滤器 build-tools-24.0.0,android-24,额外 android-m2存储库”

这是因为在撰写本文时默认情况下,离子型 CLI工具的默认值是

<preference name="android-targetSdkVersion" value="LATEST_SDK_VERSION"/>

这就是为什么它抱怨你没有接受许可协议,但实际上你没有为那个 空气污染指数级别安装 SDK 软件包,而是单独接受许可协议。

所以你需要做的是

  1. 更改目标 SDK 版本
  2. SDK 管理器安装最新的 SDKAPI 级别

更改 SDK 版本

您可以手动完成,甚至可以通过运行

ionic cordova platform add android

该文件可以在 < strong > your-awesome-app/config.xml找到 打开它并添加这一行,因为它隐藏如上所述

<preference name="android-targetSdkVersion" value="24"/>

If you are not sure which 空气污染指数 you are targeting open SDK 管理器 and look at the API levels (Numbers) available on your machine

安装最新 SDK 包

您可以添加当前的 SDK 软件包CLI正在显示,在您的情况下,它是 24

Run SDK MANAGER as 管理员

Run SDK Manager as Admin

Install the SDK API 包 which you are targeting

Thats where the SDK API level are written

我怎么知道的? 我今天早上做的,这就是我如何解决它,现在正在播放 Android 上的粘性泡泡放松一点。

部署愉快!

Mike's answer works.But need to put the generated license under C:\Users\user\AppData\Local\Android\sdk\licenses.

在我的例子中,我没有使用 Android 工作室(我使用的是 eclipse) ,我做了以下步骤: 只需运行命令即可解决

android-sdks/tools/bin$ ./sdkmanager --update

它创建了一个 licenses目录并在其中添加了一个名为 android-sdk-license的文件。

然后可以运行(除非执行了上述步骤,否则 licenses选项不可用)

android-sdks/tools/bin$ ./sdkmanager --licenses

并接受许可证(然而,在我的情况下,我不需要这样做)

在我的案例中(构建 Android CI 容器的 Dockerfile 脚本 -https://github.com/menny/docker_android) ,我必须执行以下步骤:

mkdir ~/.android && touch ~/.android/repositories.cfg
yes | sdkmanager --licenses
sdkmanager "build-tools;26.0.0"
sdkmanager "platform-tools" "tools"
sdkmanager "platforms;android-26" "platforms;android-25" "platforms;android-24"
.....
sdkmanager --update
yes | sdkmanager --licenses

两个注意事项:

  1. 必须创建一个空的 repositories.cfg文件,否则 sdkmanager将会死亡。
  2. 必须在不同的调用中执行包的获取/安装,因为没有进度指示。

它需要一个 最新消息稳定的 < em > sdk-Platform 安装。我从 API 25安装 SDK 平台。它修复了我的问题。See Screenshot below

它的平均错过匹配 Android SDK 版本的科尔多瓦与你安装的版本。举个例子,cordova 支持 Android SDK 24,但是你没有 Android SDK 24。可能是相反的。

Prerequisites

  • 确保已安装 Java
  • 初始化 JAVA 和 JAVA _ HOME 路径。
  • 找到您的 Android SDK Tools 文件夹。

回答我

  • 转到 C:\Users\{user}\AppData\Local\Android\sdk\tools\bin(您的 android SDK Tools 文件夹)

  • Run sdkmanager --licenses

  • 它会要求你接受任何尚未被接受的协议。你只需键入“ y”然后输入。

  • 会解决这个问题

你也可以直接执行

$ANDROID _ HOME/tools/bin/sdkmanager —— License

或 Windows 执行

% ANDROID _ HOME%/tools/bin/sdkmanager ——許可证

或者

C:\Users{your-username}\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses

(windows 命令的信用卡号为@pueet-kumar)

Go to Android\sdk\tools\bin

以上的解决方案对我来说都不管用,最后这条线接受了所有的安卓许可证。

yes | sdkmanager --licenses && sdkmanager --update

我不得不更新机器人的软盘

android update sdk --no-ui

在某些时候,它会要求你的许可协议,按 y。然后你需要移除有角的平台。

这将更新您的 Android SDK 并同时接受许可证(例如 Android 25) :

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

The problem for me was that my ANDROID_HOME variable was being set to another installation I forgot existed. If this is your problem, delete the old installation.

希望这对外面的人有用
I was facing the same issue! I had 2 sdks, named as sdk and sdk1. It was default linked to sdk but the working one was sdk1. So I went to Environment Varaible and added ANDROID_HOME and path of the sdk1, i.e. in my case was C: Users tripa _ 000 AppData Local Android sdk1 , and it solved my problem!

安装以下组件:

enter image description here

The simplest way to solve this issue is to accept the licenses using the following command:

视窗操作系统:

C:\Users\{your-username}\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses

你会得到免责声明。为了继续您的开发工作,您需要对所有的免责声明回答“ y”。

安装 Android7-24平台完整的 Android sdk 管理器

就是它

当旧版本的 SDK Manager 已经存在于机器中时,这个问题就会浮出水面,因为 Android 构建的方法已经改变,需要“ Android Studio”。我在 VisualStudio 中遇到了这个问题,它反复被错误消息中止,“您没有接受版本25的许可证”。解决方案是“安装 ANDROID Studio”,然后“转到 Environment Variables”,并将 ANDROID _ HOME 设置为“ C: Users AppData Local ANDROID SDK”(此路径可以从 ANDROID Studio 中选择,菜单 > > Tools > > SDK Manager。在环境变量的“路径”中也使用同样的方法。通过这种方式,VisualStudioBuildforCordova 应用程序映射新的 SDK 管理器以便进行拾取。

这只是花了我两天的努力第二次

希望别人不要在这个烂摊子上浪费时间。

  1. 转到 Android SDK 位置

C: 用户用户名 AppData Local Android sdk tools bin

  1. 运行命令 sdkmanager --licenses

  2. 接受 SDK 的许可

我正在使用 Mac,我用以下命令解决了这个问题:

$ which sdkmanager
/usr/local/bin/sdkmanager
$ /usr/local/bin/sdkmanager --licenses
Warning: File /Users/user/.android/repositories.cfg could not be loaded.
6 of 6 SDK package licenses not accepted.
Review licenses that have not been accepted (y/N)? y

然后我有一个6个许可证的清单,接受和解决之后。

你也可以按照“官方”的方式。 在安装 Android SDK 的 工具/箱文件夹中运行“ Sdkmanager ——许可证”并接受所有许可。完成!

c:\android-sdk\tools\bin>sdkmanager --licenses

For macOS or Linux it's the same command.

如果你想避免手动创建许可证文件夹,如果你的 SDK 不在“用户/用户”中,你可以到 android Studio = > Configure = > SDK Manager 并安装任何组件,我从 SDK 工具中安装了 google usb 驱动程序,它会自动在正确的位置生成许可证。

对于那些仍然存在这个问题的人,请使用目标版本的 Android API 进行安装。从 SDK 管理器检查它。

然后从 tools/bin 文件夹运行 Sdkmanager ——许可证