尝试在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的许可协议的方法,但没有真正的运气。
提前谢谢你。
答案 0 :(得分:161)
我不确定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"
答案 1 :(得分:157)
您也可以执行
$ ANDROID_HOME / tools / bin / sdkmanager --licenses
或Windows执行
%ANDROID_HOME%/ tools / bin / sdkmanager --licenses
(来自@ puneet-kumar的Windows命令)
答案 2 :(得分:47)
我在使用Cordova 6.4.0和Android Studio 2.2.3的Mac OS X 10.12.1上遇到此问题。
当我安装Android Studio时,它安装了Platform 25,但没有安装24.要安装24:
Android Studio Menu > Preferences
。Appearance & Behavior > System Settings > Android SDK
Android 7.0 (Nougat) | 24
答案 3 :(得分:25)
答案 4 :(得分:22)
转到Android \ sdk \ tools \ bin
现在已经很晚了,但上面提到的所有解决方案对我来说都没有用,最后这一行会接受所有Android许可证。
yes | sdkmanager --licenses && sdkmanager --update
答案 5 :(得分:20)
解决此问题的最简单方法是使用以下命令接受许可证:
Windows操作系统:
if (perc <= 100) {
updateProgress(perc);
setTimeout(animateUpdate, timeoutVal);
if (cancelled === true) {
// Hide the timer div and kill the timer function
$("#timer").hide();
return;
}
} else {
// Timer expired, clear box and show buy button again
.......
您将收到免责声明。为了继续您的开发工作,您需要对所有免责声明回答'y'。
答案 6 :(得分:12)
在我的情况下,我不使用Android工作室(我正在使用eclipse)。我做了以下步骤: 只需运行命令
即可解决android-sdks/tools/bin$ ./sdkmanager --update
其中创建了一个licenses
目录,并在其中添加了一个名为android-sdk-license
的文件。
然后您可以运行(除非您执行了上述步骤,否则licenses
选项不可用)
android-sdks/tools/bin$ ./sdkmanager --licenses
并接受许可(但在我的情况下,我不需要这样做)
答案 7 :(得分:12)
答案 8 :(得分:9)
我通过SDK管理器安装了android sdk build-tools 24(它的当前版本24.0.3)。 打开SDK管理器的路径显示在附加的img文件中。 这解决了我的问题 SDK Manager
答案 9 :(得分:7)
如果系统没有从正确的路径中获取ANDROID_HOME环境变量,则会出现此错误。确保您已安装Android SDK并将ANDROID_HOME变量正确设置到适当的路径,如下图所示:
如果未定义ANDROID_HOME变量,系统会尝试从默认路径中选择路径(这可能不是定义Android SDK的路径,从而导致此问题。)
答案 10 :(得分:7)
我通过安装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
。
答案 11 :(得分:4)
您还可以遵循“官方”方式。 在Android SDK安装的 tools / bin 文件夹中运行“ sdkmanager --licenses ”,并接受所有许可证。完成!
c:\android-sdk\tools\bin>sdkmanager --licenses
对于macOS或Linux,这是相同的命令。
答案 12 :(得分:4)
答案 13 :(得分:4)
就我而言(用于构建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
将会死亡。答案 14 :(得分:4)
这是因为在撰写本文时,默认 Ionic CLI 工具默认为
<preference name="android-targetSdkVersion" value="LATEST_SDK_VERSION"/>
这就是为什么它抱怨您不接受许可协议的原因,但实际上您没有为 API 级别安装 SDK包但仅接受许可证。
所以你需要做的是
更改SDK版本
您可以手动执行此操作,甚至可以通过运行
进行验证ionic cordova platform add android
可以在 your-awesome-app/config.xml
找到该文件
打开它并添加这一行,因为它隐藏如上所述
<preference name="android-targetSdkVersion" value="24"/>
如果您不确定打开 SDK Manager 的 API级别数,请查看可用的 API级别(数字)你的机器
安装最新SDK包
您可以添加 CLI 所显示的当前 SDK包,在您的情况下, 24
以管理员
运行SDK MANAGER
安装您要定位的 SDK API包
我怎么知道这个? 我今天早上做到了,这就是我如何解决它现在正在玩Sticky Bubble on Android来放松一下。
快乐部署!
答案 15 :(得分:3)
C:\ Users \用户名\应用程序数据\本地\的Android \ SDK \工具\ BIN
运行命令sdkmanager --licenses
接受SDK的许可
答案 16 :(得分:3)
转到 C:\用户{用户} \应用程序数据\本地\的Android \ SDK \工具\ BIN
然后跑 sdkmanager --licenses它会要求您接受任何剩余的协议。你只需输入&#34; y&#34;并输入。
将解决问题
答案 17 :(得分:3)
我正在使用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个可以接受的许可证,之后就解决了。
答案 18 :(得分:3)
我不得不更新android sdk
android update sdk --no-ui
在某些时候会询问您的许可协议,请按y
。之后,您需要移除角度平台。
答案 19 :(得分:2)
答案 20 :(得分:2)
当已经有旧版SDK Manager在机器中时,这个问题就出现了,因为Android版本的方法已经改变,需要“android studio”。我在Visual Studio中遇到此问题,该错误信息反复暂停,“您尚未接受版本25的许可证”。对此的解决方案是“安装Android Studio”然后“转到环境变量”并将ANDROID_HOME设置为“C:\ Users \\ AppData \ Local \ Android \ Sdk”(此路径可从Android Studio,菜单中选取&gt;&gt;工具&gt;&gt; SDK管理器。在环境变量的“路径”中也使用相同的方法。这样,新的SDK管理器将被映射以供Visual Studio Build for Cordova Application拾取。
这只花了我2天的努力
希望别人不要在这个烂摊子里浪费时间。答案 21 :(得分:1)
希望这对那里的人有用
我面临同样的问题!我有2个sdks,名为sdk和sdk1。它默认链接到sdk但工作的是sdk1。
所以我去了环境变速器并补充道
ANDROID_HOME 和sdk1的路径,即在我的情况下是 C:\ Users \ tripa_000 \ AppData \ Local \ Android \ sdk1 ,它解决了我的问题!
答案 22 :(得分:1)
您需要手动重新安装sdk 这有助于我:https://forum.ionicframework.com/t/you-have-not-accepted-the-license-agreements-of-the-following-sdk-component/69570/6
&#34; android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository&#34;
答案 23 :(得分:1)
更改目标构建可能会以引用here
的方式工作如果要指定SDK版本,可以通过将以下行添加到ionic / cordova项目根目录中的config.xml中来实现
<preference name="android-targetSdkVersion" value="23"/>
答案 24 :(得分:0)
如果您要避免手动创建许可证文件夹,并且如果您的SDK不在“用户/用户”中,则可以转到android studio =>配置=> SDK管理器并安装任何组件,我已经安装了Google sdk工具提供的usb驱动程序,它会在正确的位置自动生成许可证。
答案 25 :(得分:0)
在Android sdk manager中安装Android 7 - Platform 24 Full
只是它
答案 26 :(得分:0)
我遇到的问题是我的ANDROID_HOME变量被设置为我忘记存在的另一个安装。如果这是您的问题,请删除旧安装。
答案 27 :(得分:0)
这将更新您的Android SDK并同时接受许可(例如Android 25):
android update sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository
答案 28 :(得分:0)
它与您安装的版本的平均未命中匹配Android SDK版本的cordova。有关Cordova支持Android SDK 24的示例,但您没有Android sdk 24.它可能是相反的。
答案 29 :(得分:0)
迈克的回答是有效的。但是需要将生成的许可证放在C:\ Users \ user \ AppData \ Local \ Android \ sdk \ licenses下。
答案 30 :(得分:0)
我刚刚遇到这个问题,在Windows上为我解决了什么,你使用的是命令行,而你最近安装了android sdk,你必须在安装android sdk后重新启动Command Prompt或Power Shell。
答案 31 :(得分:0)
对我来说,我正在使用&#34;离子构建android&#34;来构建离子。命令,我遇到了同样的问题! 解决方案就是