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


119

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

提前谢谢你。


1
对于Windows,请打开具有管理员权限的SDK Manager。取消选择所有,找到SDK Platform 24,检查并安装。在那里您可以接受许可证。
Nick Chan Abdullah

1
对我而言,问题是android-sdk从多个位置(和)安装的brewbrew caskandroid-studio没有调用适当的sdkmanager --licenses命令
Pierre-Alexis de Solminihac

Answers:


167

您也可以执行

$ ANDROID_HOME / tools / bin / sdkmanager-许可证

或对于Windows执行

%ANDROID_HOME%/ tools / bin / sdkmanager-许可证

(将Windows命令的信用记入@ puneet-kumar)


在Mac上,SDK位于/ Library / Android /中
Tyler Chong

同样适用于Android 26和27。遇到了同样的问题,但是当我的科尔多瓦将gradle从4.0更新到4.1时发生了
Trevor

@PuneetKumar这个命令对我不起作用。我在tools / bin文件夹中有sdkmanager.bat文件
Heemanshu Bhalla,

在Linux中-bash:/ tools / bin / sdkmanager:没有这样的文件或目录
Niladri Banerjee-Uttarpara

您是否有一种非交互式执行的方法?
彼得·蒙斯

163

我不太确定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"

嘿,迈克,我从哪个目录执行这些命令?谢谢!
Daneye

只要定义了$ ANDROID_SDK环境变量,工作目录就无关紧要。这也可能是$ ANDROID_HOME。应该定义其中之一;这是android SDK的位置。您可以键入“ printenv”并搜索定义的变量以找到它。或者只是'echo $ ANDROID_HOME'看看它是否被设置。这是假设linux ... Windows,您将通过%ANDROID_SDK%而不是$ ANDROID_SDK%引用环境变量。
迈克,

5
随着错误,Cordova将回显ANDROID_HOME的路径(以防您找不到它)!如果未设置ANDROID_HOME,则可以像这样手动设置它set ANDROID_HOME="C:\Users\*YOUR_USER_NAME*\AppData\Local\Android\sdk"并执行上述命令。
Arno van Oordt '16

使用Android Studio并安装Android版本24为我解决了此问题。
大卫·道格拉斯

3
尽管安装了sdk构建工具24。我的问题在Mac机器上无法解决。通过手动创建许可证文件夹和文件android-sdk-license来解决此问题,如上所述
kushalvm

52

我在使用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
  • 单击确定,然后按照说明进行操作。

注意:别忘了将Android版本调整为缺少SDK平台
Hugo H

2
我这样做了,但是我可以通过单击“显示软件包详细信息”并仅选择SDK来节省一些时间,而不是同时安装Google API和Source。
亚伦

自上次构建以来,已经过去了数周。再次重新构建我的应用程序,我在上面遇到了同样的问题,但是在完成此解决方案后就解决了。
Jur P '18年

27

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

在此处输入图片说明


26

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

Windows操作系统:

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

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


25

Android\sdk\tools\bin

以上解决方案均不适合我,最后这一行接受了所有android许可。

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

1
如果windows用户遇到错误。尝试sdkmanager --licenses && sdkmanager --update手动接受许可证。
Rahmat Ali

对于macOs用户,请转到/ Users / USERNAME / Library / Android / sdk / tools / binyes | ./sdkmanager --licenses。和./sdkmanager-有助于了解更多信息。
Pushpak Sharma

13

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

SDK位置


13

就我而言,我不使用Android Studio(我正在使用eclipse)。我执行了以下步骤:仅通过运行命令即可解决

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

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

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

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

并接受许可(但是,就我而言,我不需要这样做)


9

我通过SDK管理器安装了android sdk构建工具24(当前版本为24.0.3)。附件img文件中显示了打开SDK管理器的路径。这解决了我的问题 SDK Manager


1
我没有看到附加的图片,但这也对我有用。Android Studio中有一个用于SDK Manager的按钮,然后您可以打开一个独立的SDK Manager,这将使您轻松下载所有android 24素材
Yonatan Kogan

同样,在另一台装有Windows 7 OS的PC中使用cordova build进行安装时,我也遇到了同样的问题。这次我已经安装了构建工具24。因此,请遵循下面Feyyaz提到的步骤。那正在安装Android 7.0(API 24)并正常工作。因此,我觉得最新的6版以上的cordova需要带有构建工具24或更高版本的API 24。但是我没有在他们的网站上找到任何文档。
BruS

在MacOS和Linux上,SDK管理器位于$ ANDROID_HOME / tools / android
Tony Laidig,2016年

7

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

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

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

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

  3. 复制整个licenses/目录,然后将其粘贴到Android SDK home directory要构建项目的计算机上。


7

如果系统未从正确的路径中提取ANDROID_HOME环境变量,则可能发生此错误。确保已经安装了Android SDK,并已将ANDROID_HOME变量正确设置为适当的路径,如下图所示:

ANDROID_HOME_PATH

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



4

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

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

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

所以您需要做的是

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

更改您的SDK版本

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

ionic cordova platform add android 

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

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

如果不确定要定位的API级别编号,请打开SDK Manager,然后查看计算机上可用的API级别(编号)

安装最新的SDK软件包

您可以添加当前的SDK软件包,其中CLI显示时,而你的情况是24

SDK MANAGER管理员身份运行

以管理员身份运行SDK Manager

安装您要定位的SDK API软件包

多数民众赞成在编写SDK API级别的地方

我怎么知道的 今天早上我做到了,这就是我解决问题的方式,现在我正在Android上玩Sticky Bubble放松一下。

部署愉快!


添加targetSdkVersionconfig.xml文件修复了我的问题。谢谢:)
B Faley

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. 由于没有进度指示,因此必须在不同的调用中执行软件包的获取/安装。

4

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

然后运行 sdkmanager --licenses

它会要求您接受尚待接受的所有协议。您只需输入“ y”并输入。

将解决问题


如果您具有必须自动下载sdk的构建服务器,这也很好。
Roel

我尝试了一下,然后得到了Couldn't load neither find main class com.android.sdklib.tool.SdkManagerCli。有想法吗?
PlayHardGoPro

这可能对stackoverflow.com/questions/40718487/…很有帮助。您可以尝试在/ sdklib / tools文件夹中运行“ ./SdkManagerCli”。
Lakshitha Ruwan

4

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


4

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

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

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



3
  1. 转到Android SDK位置

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

  1. 运行命令 sdkmanager --licenses

  2. 接受SDK的许可证


4
相同的信息已被发布多次。您如何改善现有答案?
斯蒂芬·肯尼迪


2

当机器中已经有旧版本的SDK Manager时,此问题就会浮出水面,从中更改Android构建方法需要“ android studio”。我在Visual Studio中遇到了这个错误,错误消息“您尚未接受版本25的许可证”而反复中止了它。解决方案是“安装Android Studio”,然后“转到环境变量”,并将ANDROID_HOME设置为“ C:\ Users \\ AppData \ Local \ Android \ Sdk”(此路径可以从Android Studio的菜单中选择>>工具>> SDK Manager。也可以在环境变量的“路径”中使用相同的方法,这样,新的SDK Manager就会映射为由Visual Studio Build for Cordova Application提取。

这只是我第二天的努力

希望其他人不要在这种混乱中浪费时间。


1

更改目标版本可能会按此处引用的方式工作

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

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


1

希望这对
我遇到同样问题的人有用!我有2个SDK,分别命名为SDK和SDK1。默认情况下,它链接到sdk,但有效的是sdk1。因此,我转到Environment Varaible并添加 ANDROID_HOME和sdk1的路径,即在我的情况下为C:\ Users \ tripa_000 \ AppData \ Local \ Android \ sdk1,它解决了我的问题!


0

对我来说,我正在使用“ ionic build android”命令构建离子,而我遇到了同样的问题!解决方案很简单

  • 安装所需的SDK
  • 在CMD中运行相同的命令必须与administrater

0

我只是遇到了这个问题,在Windows上为我解决了什么,您正在使用命令行,并且您最近安装了android sdk,所以在安装android sdk之后必须重新启动Command Prompt或Power Shell。


0

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


0

它的平均缺失是将Cordova的Android SDK版本与您安装的版本相匹配。例如,cordova支持Android SDK 24,但您没有Android sdk24。它可能是相反的。


0

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

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


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.