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_HOME
是 C:\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 的许可