尝试在 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 许可协议的方法,但没有真正的运气。
提前谢谢你。
brew
、brew cask
和 android-studio
)安装了 android-sdk
,并且没有调用适当的 sdkmanager --licenses
命令
你也可以只执行
$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 命令)
我不确定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"
set ANDROID_HOME="C:\Users\*YOUR_USER_NAME*\AppData\Local\Android\sdk"
一样手动设置它并执行上述命令。
我在带有 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
单击确定并按照说明进行操作。
解决此问题的最简单方法是使用以下命令接受许可证:
视窗操作系统:
C:\Users\{your-username}\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses
您将看到免责声明。为了继续您的开发工作,您需要对所有免责声明回答“y”。
我有完全相同的问题。然后我安装了“Android 7.0 (API 24) > SDK Platform”并且它工作了。
https://i.stack.imgur.com/CWo1n.png
前往Android\sdk\tools\bin
上述解决方案都不适合我,最后这一行接受了所有 android 许可证。
yes | sdkmanager --licenses && sdkmanager --update
windows
用户收到错误。尝试 sdkmanager --licenses && sdkmanager --update
并手动接受许可证。
yes | ./sdkmanager --licenses
。和 ./sdkmanager --help 了解更多信息。
就我而言,我不使用 Android 工作室(我使用的是 eclipse)。我做了以下步骤: 只需运行命令即可解决
android-sdks/tools/bin$ ./sdkmanager --update
它创建了一个 licenses
目录并在其中添加了一个名为 android-sdk-license
的文件。
然后您可以运行(除非您执行了上述步骤,否则 licenses
选项不可用)
android-sdks/tools/bin$ ./sdkmanager --licenses
并接受许可证(但是,在我的情况下,我不需要这样做)
我有这个问题。您无需复制或创建任何文件夹,只需注意您的 SDK 路径。它必须与环境变量(ANDROID_HOME)相同,这对我来说不一样。我不知道为什么。
https://i.stack.imgur.com/GYofI.png
我通过 SDK 管理器安装了 android sdk build-tools 24(它是当前版本 24.0.3)。打开 SDK 管理器的路径显示在附加的 img 文件中。这解决了我的问题SDK Manager
我通过安装 Android Studio 获得了 Android SDK,也遇到了这个错误。 the user guide 提供了一个简单的解决方案。
在安装了 Android Studio 的机器上,单击工具 > Android > SDK 管理器。在窗口顶部,记下 Android SDK 位置。导航到该目录并找到其中的 licenses/ 目录。 (如果您没有看到 licenses/ 目录,请返回 Android Studio 并更新您的 SDK 工具,确保接受许可协议。当您返回 Android SDK 主目录时,您现在应该会看到该目录。)复制整个licenses/ 目录并将其粘贴到您希望构建项目的机器上的 Android SDK 主目录中。
如果系统没有从正确的路径中获取 ANDROID_HOME 环境变量,则可能会出现此错误。确保您已安装 Android SDK 并将 ANDROID_HOME 变量正确设置为适当的路径,如下图所示:
如果未定义 ANDROID_HOME 变量,系统会尝试从默认路径中选择路径(这可能不是定义 Android SDK 的路径,导致此问题)。
先决条件
确保安装了 Java
初始化 JAVA 和 JAVA_HOME 路径。如果您在设置 JAVA_HOME 路径时遇到问题,请检查此项。
找到您的 Android SDK 工具文件夹。
回答
转到 C:\Users\{user}\AppData\Local\Android\sdk\tools\bin (您的 android SDK 工具文件夹)
运行 sdkmanager --licenses
它会要求您接受任何尚待接受的协议。您只需输入“y”并输入。
会解决问题
Couldn't load neither find main class com.android.sdklib.tool.SdkManagerCli
。想法?
安装以下组件:
https://i.stack.imgur.com/HjyDE.jpg
我正在使用 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 个许可证,之后就解决了。
这是因为在撰写本文时,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
文件解决了我的问题。谢谢 :)
就我而言(用于构建 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 会死掉。必须在不同的调用中执行获取/安装包,因为没有进度指示。
你也可以按照“官方”的方式。在 Android SDK 安装的 tools/bin 文件夹中运行“sdkmanager --licenses”并接受所有许可证。完毕!
c:\android-sdk\tools\bin>sdkmanager --licenses
对于 macOS 或 Linux,它是相同的命令。
它需要安装最新的稳定 sdk 平台。我从 API 25 安装了 SDK-Platform。它解决了我的问题。
我不得不更新 android sdk
android update sdk --no-ui
有时它会要求您提供许可协议,请按 y
。之后,您需要移除角平台。
转到 Android SDK 位置
C:\Users\用户名\AppData\Local\Android\sdk\tools\bin
运行命令 sdkmanager --licenses 接受 SDK 的许可
当机器中已经有旧版本的 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 天的时间
希望其他人不要在这个烂摊子上浪费时间。
更改目标构建可能会像引用的那样工作 here
如果要指定 SDK 版本,可以通过将以下行添加到 ionic / cordova 项目根目录中的 config.xml 来实现
<preference name="android-targetSdkVersion" value="23"/>
您需要手动重新安装 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”
希望这对我遇到同样问题的人有用!我有 2 个 sdk,分别命名为 sdk 和 sdk1。它默认链接到 sdk,但工作的是 sdk1。所以我去了 Environment Varaible 并添加了 ANDROID_HOME 和 sdk1 的路径,即在我的情况下是 C:\Users\tripa_000\AppData\Local\Android\sdk1 ,它解决了我的问题!
对我来说,我正在使用“ionic build android”命令构建 Ionic,我遇到了同样的问题!解决方案很简单
安装所需的 sdk
在 CMD 中运行相同的命令必须以管理员身份
我刚刚遇到这个问题,在 Windows 上为我解决了什么问题,您使用的是命令行,并且您最近安装了 android sdk,安装 android sdk 后必须重新启动命令提示符或 Power Shell。
Mike 的回答有效。但是需要将生成的许可证放在 C:\Users\user\AppData\Local\Android\sdk\licenses 下。
它的平均错过匹配 Android SDK 版本的科尔多瓦与您安装的版本。例如,cordova 支持 Android SDK 24,但您没有 Android sdk 24。它可能是相反的。
这将更新您的 android SDK 并同时接受许可证(例如 Android 25):
android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository
我的问题是我的 ANDROID_HOME 变量被设置为我忘记存在的另一个安装。如果这是您的问题,请删除旧安装。
不定期副业成功案例分享