无法接受许可协议Android SDK平台24

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

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

configurationroot项目“android”出现问题。 您尚未接受以下SDK组件的许可协议:[Android SDK Platform 24]。

我已经search了各种方式来接受Android SDK平台24的许可协议 ,但没有真正的运气。

提前谢谢你。

我不完全确定cordova是如何工作的,但一旦许可证被接受,它会创build一个文件。 您可以手动创build该文件。 这是在这个问题上描述,但这里是创build所需的许可证文件的命令。

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" 

我在Mac OS X 10.12.1上使用Cordova 6.4.0和Android Studio 2.2.3时遇到了这个问题。

当我安装Android Studio时,它安装了Platform 25,但不是24.要安装24:

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

你也可以执行

$ ANDROID_HOME / tools / bin / sdkmanager –licenses

我有完全一样的问题。 然后我安装了“Android 7.0(API 24)> SDK平台”,它的工作。

在这里输入图像描述

我通过SDKpipe理器安装了android sdk build-tools 24(最新版本为24.0.3)。 打开SDKpipe理器的path显示在附带的img文件中。 这解决了我的问题SDKpipe理器

我有这个问题,你不需要复制或创build任何文件夹,只需要注意你的SDKpath,它必须是环境variables(ANDROID_HOME)相同,这是不一样的,不知道为什么。

sdk位置

如果系统没有从正确的path中获取ANDROID_HOME环境variables,则会出现此错误。 确保你已经安装了Android SDK,并将ANDROID_HOMEvariables正确设置为适当的path,如下图所示:

ANDROID_HOME_PATH

如果未定义ANDROID_HOMEvariables,系统会尝试从默认path中selectpath(这可能不是Android SDK定义的path,导致此问题)。

转到Android \ sdk \ tools \ bin

然后运行

sdkmanager --licenses

它会要求你接受协议,你只需键入"y"并input。

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

  1. 在安装了Android Studio的计算机上,单击Tools > Android > SDK Manager 。 在窗口顶部,请注意Android SDK位置

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

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

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

这是因为在撰写本文时默认, Ionic CLI工具默认为

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

这就是为什么它抱怨你没有接受许可协议,但实际上你没有安装SDK级别的SDK包 ,而是单独接受许可证。

所以你需要做的是要么

  1. 更改您的目标SDK版本
  2. SDK Manager安装最新的SDK API级别

更改您的SDK版本

您可以手动执行,甚至通过运行来validation

 ionic cordova platform add android 

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

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

如果您不确定打算使用哪个API级别编号打开SDK Manager并查看您的计算机上可用的API级别 (数字)

安装最新的SDK包

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

pipe理员身份运行SDK MANAGER

以管理员身份运行SDK Manager

安装您所定位的SDK API包

那就是写了SDK API级别的地方

我怎么知道的? 我今天早上做了这个,这就是我解决它的方法,现在我在Android上玩Sticky Bubble来放松一下。

快乐部署!

在我的情况下,我不使用Android工作室(我使用的是Eclipse)。 我做了以下步骤:通过运行命令解决

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

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

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

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

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

解决此问题的最简单方法是使用以下命令接受许可证:

Windows操作系统:

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

您将被提出免责声明。 为了继续您的开发工作,您需要对所有免责声明回答“y”。

安装以下组件:

在这里输入图像描述

你需要手动重新安装sdk这个帮助我: https : //forum.ionicframework.com/t/you-have-not-accepted-the-license-agreements-of-the-following-sdk-component/69570/ 6

“android update sdk –no-ui –filter build-tools-24.0.0,android-24,extra-android-m2repository”

在我的情况下(Dockerfile脚本来build立一个Android CI容器 – 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. 不得不创build一个空的repositories.cfg文件或sdkmanager会死。
  2. 必须在不同的调用中执行软件包的提取/安装,因为没有进度指示。

它需要安装一个最新的稳定sdk平台 。 我从API 25安装了SDK-Platform。它解决了我的问题。 看下面的截图

转到C:\ Users {user} \ AppData \ Local \ Android \ sdk \ tools \ bin

然后运行sdkmanager –licenses

它会要求你接受任何剩下的协议被接受。 你只需要input“y”并input。

将解决问题

对我来说,我是使用“离子build立android”命令来build立离子,我得到了同样的问题! 解决办法很简单

  • 安装所需的SDK
  • 在CMD中运行相同的命令必须作为pipe理员

我只是遇到了这个问题,什么解决了我在Windows上,你使用的是命令行,而你最近安装了android sdk,你必须在安装android sdk后重新启动命令提示符或Power Shell。

迈克的答案works.But需要把生成的许可证下C:\用户\用户\应用程序数据\本地\ Android \ SDK \许可证。

它的意思是没有匹配您安装的版本的cordova的Android SDK版本。 对于一个例子,cordova支持Android SDK 24,但你没有Android SDK 24.它可能是相反的。

我不得不更新android sdk

 android update sdk --no-ui 

在某个时候它会要求你提供许可协议,请按y 。 之后,您需要删除angular度平台。

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

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

我的问题是,我的ANDROID_HOMEvariables被设置为我忘记存在的另一个安装。 如果这是您的问题,请删除旧的安装。

希望这将为那里的人工作
我面临同样的问题! 我有2个sdk,命名为sdk和sdk1。 这是默认链接到sdk,但工作是sdk1。 所以我去了Environment Varaible并添加了ANDROID_HOME和sdk1的path,也就是我的情况是C:\ Users \ tripa_000 \ AppData \ Local \ Android \ sdk1 ,它解决了我的问题!

更改目标版本可能会在这里引用

如果你想指定SDK版本,你可以通过在你的离子/cordova项目的根目录下的config.xml文件中添加下面一行来实现

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