无法接受许可协议 Android SDK Platform 24
Posted
技术标签:
【中文标题】无法接受许可协议 Android SDK Platform 24【英文标题】:Can't accept license agreement Android SDK Platform 24 【发布时间】:2017-03-15 23:09:15 【问题描述】:尝试在 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 许可协议的方法,但没有真正的运气。
提前谢谢你。
【问题讨论】:
对于 Windows,以管理员权限打开 SDK 管理器。全部取消,找到SDK Platform 24,勾选,安装。在那里你可以接受许可。 对我来说,问题是从多个位置(brew
、brew cask
和 android-studio
)安装了 android-sdk
,并且没有调用适当的 sdkmanager --licenses
命令
Automatically accept all SDK licences的可能重复
【参考方案1】:
我不确定 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"
【讨论】:
嘿迈克,我从哪个目录执行这些命令?谢谢! 工作目录无关紧要,只要定义了 $ANDROID_SDK 环境变量。这也可能是 $ANDROID_HOME。应该定义其中之一;它是 android SDK 的位置。您可以键入“printenv”并搜索定义的变量以找到它。或者只是 'echo $ANDROID_HOME' 来查看它是否已设置。这是假设 linux... windows 您将通过 %ANDROID_SDK% 而不是 $ANDROID_SDK 引用环境变量。 随着错误 Cordova 将回显 ANDROID_HOME 的路径(以防您找不到它)!如果未设置 ANDROID_HOME,您可以像set ANDROID_HOME="C:\Users\*YOUR_USER_NAME*\AppData\Local\Android\sdk"
一样手动设置它并执行上述命令。
使用 Android Studio 并安装 Android 版本 24 为我解决了这个问题。
尽管安装了 sdk 构建工具 24。我的问题在mac机器上没有解决。通过手动创建许可证文件夹和文件 android-sdk-license 解决了这个问题【参考方案2】:
我通过 SDK 管理器安装了 android sdk build-tools 24(当前版本为 24.0.3)。 打开 SDK 管理器的路径显示在附加的 img 文件中。 这解决了我的问题 SDK Manager
【讨论】:
我没有看到附加的图像,但这也对我有用。 Android Studio 中有一个 SDK Manager 按钮,然后您可以打开一个独立的 SDK 管理器,它可以让您轻松下载所有 android 24 的东西 在另一台装有 windows 7 操作系统的电脑上使用 cordova build 安装时,我再次遇到了同样的问题。这次我已经安装了 24 个构建工具。所以遵循下面Feyyaz提到的步骤。那是安装 Android 7.0 (API 24) 并工作。所以我觉得最新的cordova大于6版本需要API 24和构建工具24或更高版本。但我没有在他们的网站上找到任何相关文档。 在 MacOS 和 Linux 上,SDK 管理器位于 $ANDROID_HOME/tools/android【参考方案3】:我遇到了完全相同的问题。然后我安装了“Android 7.0 (API 24) > SDK Platform”并且它工作了。
【讨论】:
【参考方案4】:我通过安装 Android Studio 获得了 Android SDK,但也遇到了这个错误。 the user guide 有一个简单的解决方案。
在安装了 Android Studio 的机器上,点击Tools > Android > SDK Manager
。在窗口顶部,记下 Android SDK 位置。
导航到该目录并在其中找到licenses/
目录。
(如果您没有看到 licenses/
目录,请返回 Android Studio 并更新您的 SDK 工具,确保接受许可协议。当您返回 Android SDK 主目录时,您现在应该会看到该目录。)
复制整个licenses/
目录并将其粘贴到您要构建项目的机器上的Android SDK home directory
中。
【讨论】:
【参考方案5】:我遇到了问题。您无需复制或创建任何文件夹,只需注意您的 SDK 路径。它必须与环境变量(ANDROID_HOME)相同,这对我来说不一样。我不知道为什么。
【讨论】:
【参考方案6】:我在带有 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平台 我这样做了,但我可能可以通过单击“显示包详细信息”并仅选择 SDK 而不是安装 Google API 和源来节省一些时间。 自上次构建以来已经过去了几周。再次重新构建我的应用程序我遇到了上述相同的问题,但在执行此解决方案后解决了它。【参考方案7】:如果系统没有从正确的路径中获取 ANDROID_HOME 环境变量,则可能会出现此错误。确保您已安装 Android SDK 并将 ANDROID_HOME 变量正确设置为适当的路径,如下图所示:
ANDROID_HOME_PATH
如果未定义 ANDROID_HOME 变量,系统会尝试从默认路径中选择路径(这可能不是定义 Android SDK 的路径,导致此问题)。
【讨论】:
【参考方案8】:对我来说,我正在使用“ionic build android”命令构建 Ionic,但遇到了同样的问题! 解决方案很简单
安装所需的sdk 在 CMD 中运行相同的命令必须是 作为管理员【讨论】:
【参考方案9】:我刚刚遇到这个问题,在windows上为我解决了什么问题,你使用的是命令行,并且你最近安装了android sdk,你必须在安装android sdk后重新启动命令提示符或Power Shell。
【讨论】:
【参考方案10】:更改目标构建可能会像引用的 here 那样工作
如果您想指定 SDK 版本,您可以通过将以下行添加到 ionic / cordova 项目根目录中的 config.xml 来实现
<preference name="android-targetSdkVersion" value="23"/>
【讨论】:
【参考方案11】:你需要手动重新安装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"
【讨论】:
【参考方案12】:这是因为在撰写本文时,Ionic CLI 工具默认为
<preference name="android-targetSdkVersion" value="LATEST_SDK_VERSION"/>
这就是为什么它抱怨您不接受许可协议的原因,但实际上您没有为该 API 级别安装 SDK 包,而是单独接受许可证。
所以你需要做的是要么
-
更改您的目标 SDK 版本
从 SDK 管理器 安装最新的 SDK API 级别
更改您的 SDK 版本
您可以手动完成,甚至可以通过运行验证它
ionic cordova platform add android
可以在 your-awesome-app/config.xml
找到该文件
打开它并添加这一行,因为它如上所述隐藏
<preference name="android-targetSdkVersion" value="24"/>
如果您不确定您的目标是哪个 API 级别编号,请打开 SDK 管理器 并查看可用的 API 级别(编号)你的机器
安装最新的 SDK 包
您可以添加 CLI 显示的当前 SDK 包,在您的情况下是 24
以 Admin
身份运行SDK MANAGER
安装您的目标SDK API 包
我怎么知道的? 我今天早上做到了,这就是我解决它的方法,现在我正在玩Sticky Bubble on Android 来放松一下。
部署愉快!
【讨论】:
将targetSdkVersion
添加到config.xml
文件解决了我的问题。谢谢你:)【参考方案13】:
Mike 的回答有效。但是需要将生成的许可证放在 C:\Users\user\AppData\Local\Android\sdk\licenses 下。
【讨论】:
【参考方案14】:就我而言,我不使用 Android Studio(我使用的是 Eclipse)。我做了以下步骤: 运行命令即可解决
android-sdks/tools/bin$ ./sdkmanager --update
其中创建了一个licenses
目录并在其中添加了一个名为android-sdk-license
的文件。
然后你可以运行(licenses
选项不可用,除非你执行了上述步骤)
android-sdks/tools/bin$ ./sdkmanager --licenses
并接受许可(但是,在我的情况下,我不需要这样做)
【讨论】:
我可以确认这个答案与独立的 Android SDK 管理器完美配合,谢谢。【参考方案15】:就我而言(构建 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
两个音符:
-
必须创建一个空的
repositories.cfg
文件,否则sdkmanager
会死。
必须在不同的调用中执行包的获取/安装,因为没有进度指示。
【讨论】:
【参考方案16】:它需要安装最新的稳定的sdk-platform。我从 API 25 安装了 SDK-Platform。它解决了我的问题。
【讨论】:
【参考方案17】:它的意思是未匹配 Android SDK 版本的 cordova 与您安装的版本。例如,cordova 支持 Android SDK 24,但您没有 Android sdk 24。可能是相反的。
【讨论】:
【参考方案18】:先决条件
确保已安装 Java 已初始化 JAVA 和 JAVA_HOME 路径。 If you have problems setting your JAVA_HOME path, then check this。 找到您的 Android SDK 工具文件夹。回答
转到C:\Users\user\AppData\Local\Android\sdk\tools\bin
(您的 android SDK 工具文件夹)
运行sdkmanager --licenses
它会要求您接受所有尚待接受的协议。您只需输入“y”并输入即可。
解决问题
【讨论】:
如果您有一个必须自动下载 sdk 的构建服务器,这也很棒。 我试过了,我得到了Couldn't load neither find main class com.android.sdklib.tool.SdkManagerCli
。想法?
这可能会有所帮助***.com/questions/40718487/…。您可以尝试在 /sdklib/tools 文件夹中运行“./SdkManagerCli”。【参考方案19】:
你也可以直接执行
$ANDROID_HOME/tools/bin/sdkmanager --licenses
或者对于 Windows 执行
%ANDROID_HOME%/tools/bin/sdkmanager --licenses
-- 或者--
C:\Users你的用户名\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses
(感谢 @puneet-kumar 的 windows 命令)
【讨论】:
在 Mac 上,sdk 位于 /Library/Android/ 也适用于 android 26 和 27。有同样的问题,但它发生在我的科尔多瓦将 gradle 从 4.0 更新到 4.1 @PuneetKumar 这个命令对我不起作用。我在 tools/bin 文件夹中有 sdkmanager.bat 文件 在 linux -- bash: /tools/bin/sdkmanager: 没有这样的文件或目录 你有办法以非交互方式执行吗?【参考方案20】:转到Android\sdk\tools\bin
以上解决方案都不适合我,最后这一行接受了所有 android 许可证。
yes | sdkmanager --licenses && sdkmanager --update
【讨论】:
如果windows
用户遇到错误。尝试sdkmanager --licenses && sdkmanager --update
并手动接受许可证。
对于 macOS 用户,请转到 /Users/USERNAME/Library/Android/sdk/tools/bin 和 yes | ./sdkmanager --licenses
。和 ./sdkmanager --help 了解更多信息。【参考方案21】:
我必须更新 android sdk
android update sdk --no-ui
有时它会要求您提供许可协议,请按y
。之后,您需要移除角平台。
【讨论】:
【参考方案22】:这将更新您的 android SDK 并同时接受许可(例如 Android 25):
android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository
【讨论】:
【参考方案23】:我的问题是我的 ANDROID_HOME 变量被设置为我忘记存在的另一个安装。如果这是您的问题,请删除旧安装。
【讨论】:
【参考方案24】:希望这对那里的人有用 我面临同样的问题!我有 2 个 sdk,分别命名为 sdk 和 sdk1。它默认链接到 sdk,但工作的是 sdk1。 所以我去了环境变量并添加了 ANDROID_HOME 和 sdk1 的路径,即在我的情况下是 C:\Users\tripa_000\AppData\Local\Android\sdk1 ,它解决了我的问题!
【讨论】:
【参考方案25】:安装以下组件:
【讨论】:
【参考方案26】:解决此问题的最简单方法是使用以下命令接受许可证:
Windows 操作系统:
C:\Users\your-username\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses
您将看到免责声明。为了继续您的开发工作,您需要对所有免责声明回答“y”。
【讨论】:
我希望这个解决方案有效。命令运行正常,但没有修复错误。【参考方案27】:在 android sdk manager 中安装 Android 7 - Platform 24 Full
就是这样
【讨论】:
【参考方案28】:当机器中已经有旧版本的 SDK 管理器时,这个问题就会浮出水面,而 Android 构建方法已更改,需要“android studio”。我在 Visual Studio 中遇到了这个问题,它反复停止并出现错误消息“您尚未接受版本 25 的许可证”。解决方案是“安装 Android Studio”,然后“转到环境变量”并将 ANDROID_HOME 设置为“C:\Users\\AppData\Local\Android\Sdk”(此路径可以从 Android Studio、菜单中选择>> 工具 >> SDK 管理器。同样在“环境变量”的“路径”中使用。这样,新的 SDK 管理器被映射以供 Visual Studio Build for Cordova 应用程序拾取。
这只是我第二次花了 2 天的时间
希望其他人不要在这个烂摊子上浪费时间。
【讨论】:
【参考方案29】:-
转到 Android SDK 位置
C:\Users\用户名\AppData\Local\Android\sdk\tools\bin
运行命令sdkmanager --licenses
接受 SDK 许可
【讨论】:
相同的信息已经发布了多次。您的答案在现有答案上有何改进?【参考方案30】:我使用的是 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 Platform 24的主要内容,如果未能解决你的问题,请参考以下文章
Ionic 构建错误:您尚未接受以下 SDK 组件的许可协议:[Android SDK Platform 24]
你还没有接受以下sdk组件的许可协议[android sdk build-tools 23.0.1]
不接受软件包 Android SDK Platform 23 的许可