[英]Is Android license agreement the same as Android SDK license agreement?
[英]Can't accept license agreement Android SDK Platform 24
尝试在 Cordova 项目上安装 android 平台时出现以下错误。 我一直在关注本指南: https://cordova.apache.org/docs/en/latest/guide/cli/
执行以下命令时出错:$ cordova platform add android --save
配置根项目“android”时出现问题。 您尚未接受以下 SDK 组件的许可协议:[Android SDK 平台 24]。
我已经到处寻找接受 Android SDK Platform 24 许可协议的方法,但没有真正的运气。
提前谢谢你。
你也可以只执行
$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 是如何工作的,但是一旦接受了许可,它就会创建一个文件。 您可以手动创建该文件。 在这个问题中有描述,但这里是创建所需许可证文件的命令。
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"
我在使用 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
的复选框Android 7.0 (Nougat) | 24
Android 7.0 (Nougat) | 24
解决此问题的最简单方法是使用以下命令接受许可证:
视窗操作系统:
C:\\Users\\{your-username}\\AppData\\Local\\Android\\sdk\\tools\\bin\\sdkmanager --licenses
您将看到免责声明。 为了继续您的开发工作,您需要对所有免责声明回答“y”。
转到Android\\sdk\\tools\\bin
上述解决方案都不适用于我,最后这一行接受了所有 android 许可证。
yes | sdkmanager --licenses && sdkmanager --update
就我而言,我不使用 Android Studio(我使用的是 eclipse)。 我做了以下步骤:仅通过运行命令解决
android-sdks/tools/bin$ ./sdkmanager --update
它创建了一个licenses
目录,并在其中添加了一个名为android-sdk-license
的文件。
然后您可以运行(除非您执行了上述步骤,否则licenses
选项不可用)
android-sdks/tools/bin$ ./sdkmanager --licenses
并接受许可证(但是,就我而言,我不需要这样做)
我通过 SDK 管理器安装了 android sdk build-tools 24(它是当前版本 24.0.3)。 打开 SDK 管理器的路径显示在附加的 img 文件中。 这解决了我的问题SDK Manager
我通过安装 Android Studio 获得了 Android SDK,但也出现了此错误。 用户指南中有一个简单的解决方案。
在安装了 Android Studio 的机器上,单击Tools > Android > SDK Manager
。 在窗口顶部,注意Android SDK Location 。
导航到该目录并找到其中的licenses/
目录。
(如果您没有看到licenses/
目录,请返回 Android Studio 并更新您的 SDK 工具,确保接受许可协议。当您返回 Android SDK 主目录时,您现在应该会看到该目录。)
复制整个licenses/
目录并将其粘贴到您希望构建项目的机器上的Android SDK home directory
。
如果系统没有从正确的路径中获取 ANDROID_HOME 环境变量,则可能会出现此错误。 确保您已安装 Android SDK 并将 ANDROID_HOME 变量正确设置为适当的路径,如下图所示:
如果未定义 ANDROID_HOME 变量,系统会尝试从默认路径中选择路径(这可能不是定义 Android SDK 的路径,从而导致此问题)。
先决条件
回答
转到C:\\Users\\{user}\\AppData\\Local\\Android\\sdk\\tools\\bin
(您的 android SDK 工具文件夹)
运行sdkmanager --licenses
它会要求您接受尚待接受的任何协议。 你只需要输入“y”并输入。
会解决问题
我正在使用 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 版本
您可以手动完成,甚至可以通过运行来验证
ionic cordova platform add android
该文件可以在your-awesome-app/config.xml
打开它并添加这一行,因为它如上所述隐藏
<preference name="android-targetSdkVersion" value="24"/>
如果您不确定您的目标是哪个API LEVEL 编号,请打开SDK Manager并查看您机器上可用的API 级别(编号)
安装最新的 SDK 包
您可以添加CLI显示的当前SDK 包,在您的情况下是24
以管理员身份运行SDK MANAGER
安装您要定位的SDK API 包
我怎么知道这个? 我今天早上做到了,这就是我解决它的方法,现在我正在Android上玩粘性泡泡来放松一下。
部署愉快!
就我而言(构建 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,这是相同的命令。
我不得不更新android sdk
android update sdk --no-ui
在某些时候,它会要求您提供许可协议,请按y
。 之后,您需要移除角平台。
C:\\Users\\用户名\\AppData\\Local\\Android\\sdk\\tools\\bin
运行命令sdkmanager --licenses
接受 SDK 许可
当旧版本的 SDK Manager 已在更改 Android 构建方法的机器中时,此问题就会出现,这需要“android studio”。 我在 Visual Studio 中遇到过这个问题,该问题因错误消息“您尚未接受版本 25 的许可证”而反复停止。 对此的解决方案是“安装 Android Studio”,然后“转到环境变量”并将 ANDROID_HOME 设置为“C:\\Users\\\\AppData\\Local\\Android\\Sdk”(此路径可以从 Android Studio、Menu >> 工具 >> SDK 管理器。在环境变量的“路径”中也使用相同的。这样,新的 SDK 管理器被映射以供 Visual Studio Build for Cordova Application 拾取。
这只是第二次花了我两天的努力
希望其他人不要在这个烂摊子上浪费时间。
更改目标构建可能会像此处引用的那样工作
如果要指定 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。 所以我去了环境变量并添加了ANDROID_HOME和 sdk1 的路径,即在我的情况下是C:\\Users\\tripa_000\\AppData\\Local\\Android\\sdk1 ,它解决了我的问题!
对我来说,我正在使用“ionic build android”命令构建 Ionic,但我遇到了同样的问题! 解决方法很简单
我刚遇到这个问题,在 Windows 上为我解决了什么问题,您使用的是命令行,并且您最近安装了 android sdk,安装 android sdk 后必须重新启动命令提示符或 Power Shell。
Mike 的回答有效。但需要将生成的许可证放在 C:\\Users\\user\\AppData\\Local\\Android\\sdk\\licenses 下。
它的平均未匹配 Android SDK 版本的cordova 与您安装的版本。 例如,cordova 支持 Android SDK 24,但您没有 Android sdk 24。它可能相反。
这将更新您的 android SDK 并同时接受许可证(例如 Android 25):
android 更新 sdk --no-ui --filter build-tools-25.0.0,android-25,extra-android-m2repository
我的问题是我的 ANDROID_HOME 变量被设置为我忘记存在的另一个安装。 如果这是您的问题,请删除旧安装。
在 android sdk 管理器中安装 Android 7 - 平台 24
只是它
If you want to avoid creating the licence folder manually, and in case your sdk is not in the "Users/User" you can go to android studio => Configure => SDK Manager and install any component, i installed the google usb driver from sdk 工具,它会自动在正确的位置生成许可证。
对于仍有此问题的用户,请安装目标版本的 Android API。 从 SDK 管理器检查它。
然后从 tools/bin 文件夹中,您可以运行sdkmanager --licenses
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.