无法接受Android SDK Platform 24的许可协议

时间:2016-11-02 15:06:59

标签: android cordova sdk licensing

尝试在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的许可协议的方法,但没有真正的运气。

提前谢谢你。

32 个答案:

答案 0 :(得分:161)

我不确定cordova是如何工作的,但是一旦许可被接受,它就会创建一个文件。您可以手动创建该文件。它在this question中描述,但这是创建所需许可证文件的命令。

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"

答案 1 :(得分:157)

您也可以执行

  

$ ANDROID_HOME / tools / bin / sdkmanager --licenses

或Windows执行

  

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

(来自@ puneet-kumar的Windows命令)

答案 2 :(得分:47)

我在使用Cordova 6.4.0和Android Studio 2.2.3的Mac OS X 10.12.1上遇到此问题。

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

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

答案 3 :(得分:25)

我有完全相同的问题。然后我安装了“Android 7.0(API 24)> SDK平台”并且它有效。

enter image description here

答案 4 :(得分:22)

转到Android \ sdk \ tools \ bin

现在已经很晚了,但上面提到的所有解决方案对我来说都没有用,最后这一行会接受所有Android许可证。

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

答案 5 :(得分:20)

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

Windows操作系统:

if (perc <= 100) { updateProgress(perc); setTimeout(animateUpdate, timeoutVal); if (cancelled === true) { // Hide the timer div and kill the timer function $("#timer").hide(); return; } } else { // Timer expired, clear box and show buy button again .......

您将收到免责声明。为了继续您的开发工作,您需要对所有免责声明回答'y'。

答案 6 :(得分:12)

在我的情况下,我不使用Android工作室(我正在使用eclipse)。我做了以下步骤: 只需运行命令

即可解决
android-sdks/tools/bin$ ./sdkmanager --update

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

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

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

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

答案 7 :(得分:12)

我遇到了问题,你不需要复制或创建任何文件夹,只需要注意你的SDK路径,它必须与环境变量(ANDROID_HOME)相同,对我来说不一样,不知道为什么。

sdk location

答案 8 :(得分:9)

我通过SDK管理器安装了android sdk build-tools 24(它的当前版本24.0.3)。 打开SDK管理器的路径显示在附加的img文件中。 这解决了我的问题 SDK Manager

答案 9 :(得分:7)

如果系统没有从正确的路径中获取ANDROID_HOME环境变量,则会出现此错误。确保您已安装Android SDK并将ANDROID_HOME变量正确设置到适当的路径,如下图所示:

ANDROID_HOME_PATH

如果未定义ANDROID_HOME变量,系统会尝试从默认路径中选择路径(这可能不是定义Android SDK的路径,从而导致此问题。)

答案 10 :(得分:7)

我通过安装Android Studio获得了Android SDK,但也遇到了这个错误。 the user guide提供了一个简单的解决方案。

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

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

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

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

答案 11 :(得分:4)

您还可以遵循“官方”方式。 在Android SDK安装的 tools / bin 文件夹中运行“ sdkmanager --licenses ”,并接受所有许可证。完成!

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

对于macOS或Linux,这是相同的命令。

答案 12 :(得分:4)

安装以下组件:

enter image description here

答案 13 :(得分:4)

就我而言(用于构建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. 由于没有进度指示,因此必须在不同的呼叫中执行提取/安装包。

答案 14 :(得分:4)

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

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

这就是为什么它抱怨您不接受许可协议的原因,但实际上您没有为 API 级别安装 SDK包但仅接受许可证。

所以你需要做的是

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

    更改SDK版本

    您可以手动执行此操作,甚至可以通过运行

    进行验证
    ionic cordova platform add android 
    

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

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

    如果您不确定打开 SDK Manager API级别数,请查看可用的 API级别(数字)你的机器

    安装最新SDK包

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

    管理员

    运行SDK MANAGER

    Run SDK Manager as Admin

    安装您要定位的 SDK API包

    Thats where the SDK API level are written

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

    快乐部署!

答案 15 :(得分:3)

  1. 转到Android SDK位置
  2.   

    C:\ Users \用户名\应用程序数据\本地\的Android \ SDK \工具\ BIN

    1. 运行命令sdkmanager --licenses

    2. 接受SDK的许可

答案 16 :(得分:3)

转到 C:\用户{用户} \应用程序数据\本地\的Android \ SDK \工具\ BIN

然后跑 sdkmanager --licenses

它会要求您接受任何剩余的协议。你只需输入&#34; y&#34;并输入。

将解决问题

答案 17 :(得分:3)

我正在使用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个可以接受的许可证,之后就解决了。

答案 18 :(得分:3)

我不得不更新android sdk

android update sdk --no-ui

在某些时候会询问您的许可协议,请按y。之后,您需要移除角度平台。

答案 19 :(得分:2)

  

需要安装 最新 稳定的 sdk-platform 。我从API 25安装了SDK-Platform。它解决了我的问题。See Screenshot below

答案 20 :(得分:2)

当已经有旧版SDK Manager在机器中时,这个问题就出现了,因为Android版本的方法已经改变,需要“android studio”。我在Visual Studio中遇到此问题,该错误信息反复暂停,“您尚未接受版本25的许可证”。对此的解决方案是“安装Android Studio”然后“转到环境变量”并将ANDROID_HOME设置为“C:\ Users \\ AppData \ Local \ Android \ Sdk”(此路径可从Android Studio,菜单中选取&gt;&gt;工具&gt;&gt; SDK管理器。在环境变量的“路径”中也使用相同的方法。这样,新的SDK管理器将被映射以供Visual Studio Build for Cordova Application拾取。

这只花了我2天的努力

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

答案 21 :(得分:1)

希望这对那里的人有用
我面临同样的问题!我有2个sdks,名为sdk和sdk1。它默认链接到sdk但工作的是sdk1。 所以我去了环境变速器并补充道 ANDROID_HOME 和sdk1的路径,即在我的情况下是 C:\ Users \ tripa_000 \ AppData \ Local \ Android \ sdk1 ,它解决了我的问题!

答案 22 :(得分:1)

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

&#34; android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository&#34;

答案 23 :(得分:1)

更改目标构建可能会以引用here

的方式工作

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

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

答案 24 :(得分:0)

如果您要避免手动创建许可证文件夹,并且如果您的SDK不在“用户/用户”中,则可以转到android studio =>配置=> SDK管理器并安装任何组件,我已经安装了Google sdk工具提供的usb驱动程序,它会在正确的位置自动生成许可证。

答案 25 :(得分:0)

在Android sdk manager中安装Android 7 - Platform 24 Full

只是它

答案 26 :(得分:0)

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

答案 27 :(得分:0)

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

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

答案 28 :(得分:0)

它与您安装的版本的平均未命中匹配Android SDK版本的cordova。有关Cordova支持Android SDK 24的示例,但您没有Android sdk 24.它可能是相反的。

答案 29 :(得分:0)

迈克的回答是有效的。但是需要将生成的许可证放在C:\ Users \ user \ AppData \ Local \ Android \ sdk \ licenses下。

答案 30 :(得分:0)

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

答案 31 :(得分:0)

对我来说,我正在使用&#34;离子构建android&#34;来构建离子。命令,我遇到了同样的问题! 解决方案就是

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