ChatGPT解决这个技术问题 Extra ChatGPT

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

尝试在 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 命令

b
bunny

你也可以只执行

$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: 没有这样的文件或目录
你有办法以非交互方式执行吗?
C
Community

我不确定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 为我解决了这个问题。
尽管安装了 24 个 sdk 构建工具。我的问题在mac机器上没有解决。通过手动创建许可证文件夹和文件 android-sdk-license 解决了这个问题,如上所述
j
jxmallett

我在带有 Cordova 6.4.0 和 Android Studio 2.2.3 的 Mac OS X 10.12.1 上遇到了这个问题。

当我安装 Android Studio 时,它安装了 Platform 25,但不是 24。要安装 24:

打开安卓工作室。

打开 Android Studio 菜单 > 首选项。

外观与行为 > 系统设置 > Android SDK

勾选 Android 7.0 (Nougat) | 24

单击确定并按照说明进行操作。


注意:不要忘记将android版本调整为缺少SDK平台
我这样做了,但我可能可以通过单击“显示包详细信息”并仅选择 SDK 而不是安装 Google API 和源来节省一些时间。
自我上次构建以来已经过去了数周。再次重新构建我的应用程序我遇到了上述相同的问题,但在执行此解决方案后解决了它。
F
Full Array

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

视窗操作系统:

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

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


伙计,我希望这个解决方案有效。命令运行正常,但不能修复错误。
f
feyyaz

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

https://i.stack.imgur.com/CWo1n.png


S
Shark Lasers

前往Android\sdk\tools\bin

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

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

如果 windows 用户收到错误。尝试 sdkmanager --licenses && sdkmanager --update 并手动接受许可证。
对于 macOS 用户,请转到 /Users/USERNAME/Library/Android/sdk/tools/binyes | ./sdkmanager --licenses。和 ./sdkmanager --help 了解更多信息。
B
BeeZone

就我而言,我不使用 Android 工作室(我使用的是 eclipse)。我做了以下步骤: 只需运行命令即可解决

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

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

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

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

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


我可以确认这个答案与独立的 Android SDK 管理器完美配合,谢谢。
p
peterh

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

https://i.stack.imgur.com/GYofI.png


B
BruS

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


我没有看到附加的图像,但这也对我有用。 Android Studio 中有一个 SDK 管理器按钮,然后您可以打开一个独立的 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
C
Community

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

在安装了 Android Studio 的机器上,单击工具 > Android > SDK 管理器。在窗口顶部,记下 Android SDK 位置。导航到该目录并找到其中的 licenses/ 目录。 (如果您没有看到 licenses/ 目录,请返回 Android Studio 并更新您的 SDK 工具,确保接受许可协议。当您返回 Android SDK 主目录时,您现在应该会看到该目录。)复制整个licenses/ 目录并将其粘贴到您希望构建项目的机器上的 Android SDK 主目录中。


K
Krishna_Anipindi

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

ANDROID_HOME_PATH

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


R
Ruben Szekér

先决条件

确保安装了 Java

初始化 JAVA 和 JAVA_HOME 路径。如果您在设置 JAVA_HOME 路径时遇到问题,请检查此项。

找到您的 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。想法?
这可能会有所帮助stackoverflow.com/questions/40718487/…。您可以尝试在 /sdklib/tools 文件夹中运行“./SdkManagerCli”。
S
Sumant Singh

安装以下组件:

https://i.stack.imgur.com/HjyDE.jpg


N
Neel

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


F
Fahad

这是因为在撰写本文时,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

https://i.stack.imgur.com/AKisg.jpg

安装您的目标 SDK API 包

https://i.stack.imgur.com/FP782.jpg

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

快乐部署!


targetSdkVersion 添加到 config.xml 文件解决了我的问题。谢谢 :)
M
Menny

就我而言(用于构建 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 会死掉。必须在不同的调用中执行获取/安装包,因为没有进度指示。


G
Georgy K

你也可以按照“官方”的方式。在 Android SDK 安装的 tools/bin 文件夹中运行“sdkmanager --licenses”并接受所有许可证。完毕!

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

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


T
Tushar Walzade

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


T
Tasnim Reza

我不得不更新 android sdk

android update sdk --no-ui

有时它会要求您提供许可协议,请按 y。之后,您需要移除角平台。


A
Alexan

转到 Android SDK 位置

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

运行命令 sdkmanager --licenses 接受 SDK 的许可


相同的信息已经发布了多次。您如何改进现有答案?
e
ekambar kodali

当机器中已经有旧版本的 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 Application 拾取。

这只是第二次花了我 2 天的时间

希望其他人不要在这个烂摊子上浪费时间。


M
Madhu Kumar

更改目标构建可能会像引用的那样工作 here

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

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

Y
Yevhen Kotliar

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

“android 更新 sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository”


T
Tripathee Gaurav

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


A
Adel

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

安装所需的 sdk

在 CMD 中运行相同的命令必须以管理员身份


N
Norman Breau

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


T
Thyagarajan C

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


Y
Yusuf

它的平均错过匹配 Android SDK 版本的科尔多瓦与您安装的版本。例如,cordova 支持 Android SDK 24,但您没有 Android sdk 24。它可能是相反的。


Y
Yann Ulrich

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

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


C
Cilan

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