Ionic 构建错误:您尚未接受以下 SDK 组件的许可协议:[Android SDK Platform 24]

Posted

技术标签:

【中文标题】Ionic 构建错误:您尚未接受以下 SDK 组件的许可协议:[Android SDK Platform 24]【英文标题】:Ionic build error : You have not accepted the license agreements of the following SDK components: [Android SDK Platform 24] 【发布时间】:2017-03-16 11:56:07 【问题描述】:

我正在尝试运行命令 ionic build android --release 来构建 apk,但我收到此错误

总时间:1.767 秒错误:cmd:命令失败,退出代码为 1 错误输出:FAILURE: Build failed with an exception。

出了什么问题:配置根项目“android”时出现问题。

您尚未接受以下 SDK 组件的许可协议:[Android SDK Platform 24]。在构建项目之前, 您需要接受许可协议并完成 使用 Android Studio SDK 安装缺少的组件 经理。或者,了解如何转让许可证 从一个工作站到另一个工作站的协议,转到 http://d.android.com/r/studio-ui/export-licenses.html

尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。拿起_JAVA_OPTIONS:-Xmx512M

【问题讨论】:

参考***.com/questions/38096225/… Can't accept license agreement Android SDK Platform 24的可能重复 解决方案:***.com/questions/40383323/… 【参考方案1】:

安装许可证:

mkdir "%ANDROID_HOME%\licenses"

回声 |set /p="8933bad161af4178b1185d1a37fbf41ea5269c55" > "%ANDROID_HOME%\licenses\android-sdk-license"

【讨论】:

我没有 %ANDROID_HOME% 环境变量。尝试使用 %ADT_HOME% 代替,没有运气。我是win7的。有什么想法吗? @mpsyp ANDROID_HOME 是您的 android SDK 位置。如果windows环境变量中没有,创建一个并指向包含android sdk包的文件夹。 如何在 Windows 7 上做到这一点? 这是一个很好的答案。另外请确保您的 android-sdk 文件夹具有 READ/WRITE 权限。 在 Linux 上为我工作。如果您不想只使用命令行,请在 Android/sdk/ 中创建一个名为 licenses 的文件夹,创建文件 android-sdk-license,复制 8933bad161af4178b1185d1a37fbf41ea5269c55。谢谢皮特!【参考方案2】:

在命令提示符中,转到 ANDROID_HOME\tools\bin

然后运行命令,sdkmanager --licenses

在出现提示时接受您想要的许可证。

【讨论】:

【参考方案3】:

安装 Platform 24 (Android 7) 解决了这个问题

【讨论】:

适用于 Cordova CLI 6.4.0 / Windows 8.1 :) 谢谢! 用 SDK 管理器安装了 24 个,没有运气。我以前从来没有遇到过这个问题,只是在卸载并重新安装 Ionic+Cordova 等之后才开始。之前的构建工作正常。为什么现在出现了? @mpsyp 在 Peter Wang 的解决方案之后,当我再次开始构建时,我看到 android 25 已安装并且构建成功。所以也许安装 android 25 可以解决这个问题。 这并不总是有效。 Peter Wang 的解决方案在许可证仍然有效的情况下绕过了出错的可能性。【参考方案4】:

我通过安装没有 Android SDK 管理器的 Android SDK Platform 24 解决了这个问题。

android update sdk --no-ui --filter build-tools-24.0.2,android-24,extra-android-m2repository

*Cordova CLI 6.4.0 / Windows 10

【讨论】:

这对我有用!尝试了上述两种解决方案均未成功。【参考方案5】:
    转到C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin 运行命令./sdkmanager.bat --licenses 接受许可

为我工作

【讨论】:

在第 1 步中,您忘记了用户名和本地之间的“AppData”(因此路径是 C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin),在第 2 步中,我必须执行的命令是 ./sdkmanager.bat --licenses。这样,我就可以毫无问题地为 android 构建。谢谢你的帮助。如果您接受我发送的编辑,我认为这应该是公认的答案。它准确地关注问题所在并解决它。【参考方案6】:

这在 ubuntu 下对我有用:

mkdir "$ANDROID_SDK/licenses" || true
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"

来源:Dori's answer to automatically-accept-all-sdk-licences

【讨论】:

【参考方案7】:

设置 ANDROID_HOME 环境变量后,以上 peter wang 的回答对我有用。 在我的情况下,ANDROID_HOMEC:\Users\YourUserName\AppData\Local\Android\android-sdk

之后,下面的命令导致构建成功。

mkdir "%ANDROID_HOME%\licenses"
echo |set /p="8933bad161af4178b1185d1a37fbf41ea5269c55" > "%ANDROID_HOME%\licenses\android-sdk-license"

【讨论】:

在我的情况下,添加 ANDROID_HOME 环境变量就足够了,因为许可证已经存在。【参考方案8】:

我的软件:

Ubuntu 16.04.2 LTS
Gradle 3.5
java version "1.8.0_131"
$ANDROID_HOME = ~/AndroidSDK

工作解决方案:

yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2

当然,您应该使用您的构建工具版本。

来源:

Automatically accept all SDK licences

【讨论】:

【参考方案9】:

每当您的 Android Studio 软件包过时时,您都会遇到类似的问题,因为构建将在最新的稳定版本中进行。要修复,请执行以下操作:

Android Studio > 首选项 > 外观和行为 > 系统设置 > Android SDK 勾选最新的 Android 版本(或您需要的版本),点击应用。 此时,Android 会要求您同意其许可证,并且将安装更新的版本。

现在您可以构建/运行 Ionic / Cordova / PhoneGap。

【讨论】:

【参考方案10】:

如果您遇到来自较新版本的 Android SDK 的问题,请在 config.xml 中更改您的目标版本。

接下来,打开 Android Studio>Configure>SDK Manager

检查你需要的版本 24 使用 7.0 并检查它。然后安装它并尝试重新构建。

【讨论】:

【参考方案11】:

我遇到了同样的问题,我使用@peters.Wang 回答生成许可证并将许可证文件夹放在 sdk 文件夹中。

感谢@peters.Wang

【讨论】:

只需将图像添加到他的答案中,因为这不是单独的解决方案【参考方案12】:

安装 sdk 25 并接受来自 android studio 的许可。这解决了我的问题。

【讨论】:

【参考方案13】:

我已经解决了这个问题。

mkdir "%ANDROID_HOME%\licenses"

echo |set /p="8933bad161af4178b1185d1a37fbf41ea5269c55" > "%ANDROID_HOME%\licenses\android-sdk-license"

【讨论】:

【参考方案14】:

您必须在

之后遵循帮助文本

您尚未接受以下 SDK 组件的许可协议: 在这种情况下,您必须安装 [Android SDK Platform 24]。事实上,括号 [] 中的帮助文本会带您走上正确的道路。

【讨论】:

【参考方案15】:

我通过检查文件 android-sdk-licenses 解决了这个问题 在我的路径 G:\Android\sdk\licenses 的已安装 ANdroid 路径中 此目录中存在相同的文件 C:\Users\Ashutosh\AppData\Local\Android\Sdk\licenses 如果多个许可证复制所有许可证:)

【讨论】:

【参考方案16】:

我有同样的情况,以上所有建议都不起作用,因为我的安装和组件文件夹名称不同或文件位于不同的位置。

我在 C 中安装了旧版 Android Studio,在 E 中安装了新版。我已经卸载了旧版本,但 Android Studio 没有清除所有文件并重置我的 Env。多变的。所以我只是做了以下

1) 搜索到这个文件:android-sdk-license

2) 查看上述文件是否在被其他文件夹(如附加组件、构建工具、模拟器等)包围的许可证文件夹中。

3) 然后确保 ANDROID_HOME 指向这个许可证的父文件夹。

【讨论】:

【参考方案17】:

请访问https://discuss.circleci.com/t/licences-for-android-build-tools-not-accepted/17285/18

依赖:

覆盖:

echo y | android update sdk --no-ui --all --filter build-tools-26.0.2,android-26

代替我原来的:

依赖:

覆盖:

echo y | android update sdk --no-ui --all --filter build-tools-26.0.2

【讨论】:

【参考方案18】:

安装最新的 Android Studio 并接受许可协议。

https://developer.android.com/studio/index.html

【讨论】:

以上是关于Ionic 构建错误:您尚未接受以下 SDK 组件的许可协议:[Android SDK Platform 24]的主要内容,如果未能解决你的问题,请参考以下文章

不接受软件包 Android SDK Platform 23 的许可

由于未接受许可协议,run-android 无法运行

react-native run-android 失败:无法在设备上安装应用程序,请阅读上面的错误

Flutter 运行错误:您尚未接受许可协议

构建失败并出现异常 [Android SDK 平台 25]

TestFlight 不接受使用 TestFlight SDK 构建