繁体   English   中英

不能接受许可协议 Android SDK 平台24

[英]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 7.0 (API 24) > SDK Platform”并且它工作正常。

在此处输入图片说明

转到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_HOME) 相同,这对我来说不一样。 我不知道为什么。

SDK位置

我通过 SDK 管理器安装了 android sdk build-tools 24(它是当前版本 24.0.3)。 打开 SDK 管理器的路径显示在附加的 img 文件中。 这解决了我的问题SDK Manager

我通过安装 Android Studio 获得了 Android SDK,但也出现了此错误。 用户指南中有一个简单的解决方案。

  1. 在安装了 Android Studio 的机器上,单击Tools > Android > SDK Manager 在窗口顶部,注意Android SDK Location

  2. 导航到该目录并找到其中的licenses/目录。

    (如果您没有看到licenses/目录,请返回 Android Studio 并更新您的 SDK 工具,确保接受许可协议。当您返回 Android SDK 主目录时,您现在应该会看到该目录。)

  3. 复制整个licenses/目录并将其粘贴到您希望构建项目的机器上的Android SDK home directory

如果系统没有从正确的路径中获取 ANDROID_HOME 环境变量,则可能会出现此错误。 确保您已安装 Android SDK 并将 ANDROID_HOME 变量正确设置为适当的路径,如下图所示:

ANDROID_HOME_PATH

如果未定义 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 包而单独接受许可的原因。

所以你需要做的是

  1. 更改您的目标 SDK 版本
  2. SDK Manager安装最新的 SDK API 级别

更改您的 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 Manager

安装您要定位的SDK API 包

这就是编写 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

两个注意事项:

  1. 必须创建一个空的repositories.cfg文件,否则sdkmanager会死。
  2. 必须在不同的调用中执行包的获取/安装,因为没有进度指示。

您也可以按照“官方”的方式进行。 在 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 之后,您需要移除角平台。

  1. 转到 Android SDK 位置

C:\\Users\\用户名\\AppData\\Local\\Android\\sdk\\tools\\bin

  1. 运行命令sdkmanager --licenses

  2. 接受 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,但我遇到了同样的问题! 解决方法很简单

  • 安装所需的sdk
  • 在 CMD 中运行相同的命令必须以管理员身份运行

我刚遇到这个问题,在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM