无法接受许可协议 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,勾选,安装。在那里你可以接受许可。 对我来说,问题是从多个位置(brewbrew caskandroid-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 > PreferencesAppearance & 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 &amp;&amp; sdkmanager --update 并手动接受许可证。 对于 macOS 用户,请转到 /Users/USERNAME/Library/Android/sdk/tools/binyes | ./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 的许可

不接受软件包 Android SDK Build-Tools 的许可 [重复]

在android studio上运行应用程序的sdk错误

Nativescript 接受 Android SDK 许可