无法接受许可协议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)相同,这是不一样的,不知道为什么。
如果系统没有从正确的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。
-
在安装了Android Studio的计算机上,单击
Tools > Android > SDK Manager
。 在窗口顶部,请注意Android SDK位置 。 -
导航到该目录并find其中的
licenses/
目录。(如果您没有看到
licenses/
目录,请返回到Android Studio并更新您的SDK工具,确保接受许可证协议。当您返回到Android SDK主目录时,您应该看到目录。 -
复制整个
licenses/
目录,并将其粘贴到希望生成项目的机器上的Android SDK home directory
。
这是因为在撰写本文时默认, Ionic CLI工具默认为
<preference name="android-targetSdkVersion" value="LATEST_SDK_VERSION"/>
这就是为什么它抱怨你没有接受许可协议,但实际上你没有安装SDK级别的SDK包 ,而是单独接受许可证。
所以你需要做的是要么
- 更改您的目标SDK版本
- 从SDK Manager安装最新的SDK API级别
更改您的SDK版本
您可以手动执行,甚至通过运行来validation
ionic cordova platform add android
该文件可以在your-awesome-app/config.xml
find,打开它并添加这一行,因为它隐藏如上所述
<preference name="android-targetSdkVersion" value="24"/>
如果您不确定打算使用哪个API级别编号打开SDK Manager并查看您的计算机上可用的API级别 (数字)
安装最新的SDK包
您可以添加CLI显示的当前SDK包 ,在您的情况下,它是24
以pipe理员身份运行SDK MANAGER
安装您所定位的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
两个注释:
- 不得不创build一个空的
repositories.cfg
文件或sdkmanager
会死。 - 必须在不同的调用中执行软件包的提取/安装,因为没有进度指示。
它需要安装一个最新的稳定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"/>