无法接受许可协议Android SDK平台24

124

当我尝试在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的许可协议,但没有真正的运气。

提前感谢您。


1
对于Windows,以管理员身份打开SDK管理器。取消选择所有选项,查找SDK平台版本24,勾选并安装。然后您就可以接受许可协议了。 - Nick Chan Abdullah
1
对我来说,问题在于从多个地方(brewbrew caskandroid-studio)安装了android-sdk,并没有调用适当的sdkmanager --licenses命令。 - Pierre-Alexis de Solminihac
可能是自动接受所有SDK许可证的重复问题。 - user202729
33个回答

172

你也可以直接执行以下命令:

$ANDROID_HOME/tools/bin/sdkmanager --licenses

如果你使用的是Windows系统,可以执行以下命令:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses

-- 或者 --

C:\Users{your-username}\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses

(感谢 @puneet-kumar 提供的Windows命令)


在Mac上,sdk位于/Library/Android/。 - Tyler Chong
同样的问题也发生在我的 Cordova 将 Gradle 从 4.0 更新到 4.1 时,但这个解决方法在 Android 26 和 27 上也很好用。 - Trevor
@PuneetKumar 这个命令对我不起作用。我在tools/bin文件夹中有sdkmanager.bat文件。 - Heemanshu Bhalla
1
在Linux中 -- bash: /tools/bin/sdkmanager: 没有这个文件或目录 - Niladri Banerjee - Uttarpara
你有一种可以非交互式地执行它的方式吗? - Peter Mounce
显示剩余3条评论

166

我不确定 Cordova 如何工作,但一旦许可证被接受,它就会创建一个文件。你可以手动创建那个文件。在这个问题中有描述,以下是创建所需许可证文件的命令。

Linux:

mkdir "$ANDROID_HOME/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"

Windows:

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

工作目录不应该有影响,只要定义了$ANDROID_SDK环境变量即可。这也可以是$ANDROID_HOME。其中一个应该被定义;它是android SDK的位置。您可以键入“printenv”并搜索已定义的变量以找到它。或者只需“echo $ANDROID_HOME”查看是否设置。这是假设在Linux下...在Windows下,您将使用%ANDROID_SDK%而不是$ANDROID_SDK来引用环境变量。 - Mike
5
除了错误提示外,Cordova还会输出ANDROID_HOME的路径(如果您找不到它的话)! 如果未设置ANDROID_HOME,则可以手动设置,如下所示: set ANDROID_HOME="C:\Users\*YOUR_USER_NAME*\AppData\Local\Android\sdk",然后执行上述命令。 - Arno van Oordt
3
尽管已安装 SDK Build Tools 24,但我在 Mac 机器上仍未解决我的问题。通过按照上述方法手动创建许可证文件夹和 android-sdk-license 文件来解决了这个问题。 - HalfWebDev
我已经尝试了所有的方法,但对我来说仍然无法工作。 - Giovanni
以管理员身份打开命令提示符 - Ahsan Ahmed
显示剩余8条评论

58

我在Mac OS X 10.12.1上遇到了这个问题,使用的是Cordova 6.4.0和Android Studio 2.2.3。

当我安装Android Studio时,它安装了平台25,但没有24。要安装24,请按照以下步骤进行:

  • 打开Android Studio。
  • 打开Android Studio菜单 > 偏好设置
  • 外观和行为 > 系统设置 > Android SDK
  • 选中Android 7.0(Nougat)| 24的复选框
  • 点击确定并按照说明操作。

注意:不要忘记将Android版本调整为缺少的SDK平台。 - Hugo H
2
我已经完成了这个任务,但如果我点击“显示包详细信息”并仅选择SDK而不安装Google APIs和Source,我可能可以节省一些时间。 - Aaron
自从上次构建以来已经过了几周。重新构建我的应用程序后,我遇到了同样的问题,但在尝试了这个解决方案后解决了它。 - Jur P

31

解决这个问题最简单的方法是使用以下命令接受许可证:

Windows 操作系统:

C:\Users\{你的用户名}\AppData\Local\Android\sdk\tools\bin\sdkmanager --licenses

您将会看到一些免责声明。为了继续开发工作,您需要对所有免责声明都回答“y”。


哎呀,我希望这个解决方案能够奏效。命令运行正常,但是无法修复错误。 - user959690

27

我有完全相同的问题。然后我安装了“Android 7.0 (API 24) > SDK平台”,它就可以了。

在此输入图片描述


27

前往 Android\sdk\tools\bin

以上解决方案均无效,最终这一行命令成功接受了所有的 Android 许可证。

yes | sdkmanager --licenses && sdkmanager --update

1
如果Windows用户遇到错误,请尝试运行sdkmanager --licenses && sdkmanager --update并手动接受许可证。 - Rahmat Ali
对于macOS用户,请前往**/Users/USERNAME/Library/Android/sdk/tools/bin**,然后运行yes | ./sdkmanager --licenses。运行./sdkmanager --help以了解更多信息。 - Pushpak Sharma

17

在我的情况中,我不使用Android Studio(我使用的是Eclipse)。我通过执行以下步骤解决了问题:

只需运行命令即可解决。

android-sdks/tools/bin$ ./sdkmanager --update

这样会创建一个名为licenses的目录,并在其中添加一个名为android-sdk-license的文件。

然后你可以运行(除非你执行了上述步骤,否则不会出现licenses选项)

android-sdks/tools/bin$ ./sdkmanager --licenses

并接受许可证(然而,在我的情况下我不需要这样做)


我可以确认这个答案在独立的Android SDK管理器中完美运行,谢谢。 - andreszs

13

我曾遇到过这个问题。你不需要复制或创建任何文件夹,只需注意你的SDK路径必须与环境变量(ANDROID_HOME)相同,而我的两者不同。我不知道为什么。

sdk location


9
我通过SDK管理器安装了Android SDK Build-Tools 24(当前版本为24.0.3)。 打开SDK管理器的路径显示在附加的图像文件中。 这解决了我的问题。 SDK管理器

1
我没有看到附加的图片,但这对我也起作用了。在Android Studio中有一个SDK Manager按钮,然后你可以打开一个独立的SDK管理器,它会让你相当容易地下载所有的android 24东西。 - Yonatan Kogan
当我在另一台安装有Windows 7操作系统的电脑上使用cordova构建时,我再次遇到了同样的问题。这一次,我已经安装了构建工具24。所以我按照Feyyaz下面提到的步骤进行了操作。也就是安装Android 7.0(API 24),然后就可以正常工作了。因此,我认为最新的cordova版本大于6需要API 24和构建工具24或更高版本。但我在他们的网站上没有找到任何相关文档。 - BruS
在MacOS和Linux上,SDK管理器位于$ANDROID_HOME/tools/android。 - Tony Laidig

7
我通过安装Android Studio获得了Android SDK,也遇到了这个错误。用户指南中提供了一个简单的解决方案。
  1. 在安装了Android Studio的机器上,点击 Tools > Android > SDK Manager。在窗口顶部,请注意Android SDK位置

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

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

  3. 复制整个licenses/目录并将其粘贴到希望构建项目的计算机上的Android SDK主目录中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接